安裝 flask-sqlalchemy:pip install flask-sqlalchemy -i https://pypi.tuna.tsinghua.edu.cn/simple/
Script Demo:
config.py
# -*- coding:utf-8 -*-
# 一般大寫
DEBUG = True
# 數(shù)據(jù)庫(kù)配置
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://localhost/baidu_db?user=root&password=******'
SQLALCHEMY_TRACK_MODIFICATIONS = False
app_5.py
# -*- coding:utf-8 -*-
from app import create_app
app = create_app()
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5001)
proj_dir/app/__init__.py
# -*- coding:utf-8 -*-
from flask import Flask
from app.models.user import db
def create_app():
app = Flask(__name__)
app.config.from_object('config')
# 藍(lán)圖注冊(cè)
register_blueprint(app)
# 數(shù)據(jù)庫(kù)的初始化
db.init_app(app)
db.create_all(app=app)
return app
# 藍(lán)圖注冊(cè)
def register_blueprint(app):
# 注冊(cè) api
from app.api import api
app.register_blueprint(api)
proj_dir/app/api/__init__.py
# -*- coding:utf-8 -*-
from flask import Blueprint
'''
函數(shù)名稱在同一藍(lán)圖下不能相同蛇更,跨模塊也不可以
'''
# 實(shí)例化藍(lán)圖對(duì)象
api = Blueprint('api', __name__)
# 導(dǎo)入
from app.api import request_method
請(qǐng)求方式
proj_dir/app/api/request_method.py
# -*- coding:utf-8 -*-
from app.forms.user import UserForm
from flask import jsonify, request
from . import api
from app.models.user import User, db
@api.route('/api/getUserInfo', methods=['GET', 'POST'])
def get_user_info():
result = {
'request_type': request.method,
'message': 'success'
}
user = None
if request.method == 'GET':
form = UserForm(request.args)
user = db.session.query(User).filter(User.username == form.username.data.strip()).first()
elif request.method == 'POST':
user = db.session.query(User).filter(User.username == request.json['username']).first()
if user is not None:
result['username'] = user.username
result['userid'] = user.id
return jsonify(result)
表單驗(yàn)證
proj_dir/app/models/user.py
# -*- coding:utf-8 -*-
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Column, String, Integer
db = SQLAlchemy()
class User(db.Model):
# 必須匹配主鍵
id = Column(Integer, primary_key=True, autoincrement=True)
username = Column(String(50), nullable=False, unique=True)
表單驗(yàn)證
proj_dir/app/forms/user.py
# -*- coding:utf-8 -*-
# 自動(dòng)校驗(yàn)
from wtforms import Form, StringField, IntegerField
from wtforms.validators import DataRequired, Length
class UserForm(Form):
# userid =IntegerField(validators=[DataRequired(), Length(min=5, max=10)])
username = StringField(validators=[DataRequired(), Length(min=5, max=10)])
Test:
http://0.0.0.0:5001/api/getUserInfo?username=Jack Ma
http://0.0.0.0:5001/api/getUserInfo
{
"username": "Jack Ma"
}