使用python编写简单的登陆API

框架

Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2



思路

利用Flask,通过和数据库校验用户名密码来判断是否可以登陆成功。

实现

#!/usr/bin/python
# -*- coding: utf-8 -*-

from flask import Flask, request, render_template, Response
import MySQLdb
import json

app = Flask(__name__)

@app.route('/login', methods=['GET', 'POST'])

def login():
    if request.method == 'POST':
        if valid_login(request.form['username'],
                       request.form['password']):
            return json.dumps({'status': 1, 'data': 'login success'})
        else:
            error = 'Invalid username/password'
            return error
    else:
        return 'Not Support Get'

def valid_login(username,password):

    conn = MySQLdb.connect(
        host='localhost',
        port=3306,
        user='root',
        # passwd='',
        db='Test'
    )

    cur = conn.cursor()
    resp = []

    try:
        sql = "select * from user where name = '%s' and password = '%s'" % (username, password)
        cur.execute(sql)
        resp = cur.fetchall()
        conn.commit()

    except Exception as e:
        print e
        conn.rollback()

    cur.close()
    conn.close()

    return len(resp)

if __name__ == '__main__':
    app.run(host="127.0.0.1", port=8080, debug=True)

部署

pycharm运行xxx.py即可

* Running on http://127.0.0.1:8080/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: 273-703-379

Mac默认开启apache服务占用了80端口,所以这边暂时使用8080作为测试端口在本地测试。

小结

用Python写Restful风格的webAPI其实蛮方便,也容易部署,小项目容易上手,本文所写API只为好玩,真实项目要考虑更多的东西,比如加密等等。