Flask中使用mysql
先安裝相關模塊:
pip install Flask-MySQL
先准備一下數據庫
登錄:
mysql -u root -p
創建Database和創建Table
mysql> CREATE DATABASE EmpData; mysql> use EmpData; mysql> CREATE TABLE User( userId INT NOT NULL AUTO_INCREMENT, userName VARCHAR(100) NOT NULL, password VARCHAR(40) NOT NULL, PRIMARY KEY(userId) );
插入數據:
mysql> insert into User values('','Admin','admin');
現在,讓我們回到hello.py並嘗試使用flask-mysql連接MySQL。 首先,通過在hello.py中導入它來初始化擴展,如下所示:
from flask import Flask from flaskext.mysql import MySQL mysql = MySQL() app = Flask(__name__) app.config['MYSQL_DATABASE_USER'] = 'root' app.config['MYSQL_DATABASE_PASSWORD'] = 'root' app.config['MYSQL_DATABASE_DB'] = 'EmpData' app.config['MYSQL_DATABASE_HOST'] = 'localhost' mysql.init_app(app) @app.route("/") def hello(): return "Welcome to Python Flask App!" if __name__ == "__main__": app.run()
我們將使用cuesor從數據庫訪問數據,可以使用mysql對象創建一個。我們還可以添加一個叫Authenticate的方法,來驗證登錄過程,所以添加下面代碼:
@app.route("/Authenticate") def Authenticate(): username = request.args.get('UserName') password = request.args.get('Password') cursor = mysql.connect().cursor() cursor.execute("SELECT * from User where Username='" + username + "' and Password='" + password + "'") data = cursor.fetchone() if data is None: return "Username or Password is wrong" else: return "Logged in successfully"
測試
python hello.py
假如我們在瀏覽器輸入了錯誤的數據庫數據(UserName和Password),比如:
http://127.0.0.1:5000/Authenticate?UserName=jay&Password=jay
瀏覽器會提示錯誤:
Username or Password is wrong
輸入數據庫內的數據:
http://127.0.0.1:5000/Authenticate?UserName=Admin&Password=admin
顯示:
Logged in successfully.
不過前面都只是簡單的操作數據庫,如果沒有配合參數過濾,容易遇到sql注入的危險,應該注意