使用Flask框架的整體流程
使用Flask框架的整體流程
自己使用的一些整理,若有紕漏,敬請指出。
Flask框架
需要的模組 flask 裡的 Flask
1.主程式(run)
首先例項化物件 app = Flask(name)
app.config[‘SECRET_KEY’] = random._urandom(24) # 生成一個金鑰
2. 建立路由聯絡、 寫檢視函式(views)
@app.route(’\xxxx’)
def index():
if/else/… # 判斷
get mysql values # 獲取資料庫中資料
return render_template(’.html’(,values)) # 渲染模版 及傳入引數
(return rediect(url_for(views))) # 重定向另一檢視函式
3. 獲取使用者上傳資料
需要匯入模組 from flask import requests
@app.route(’/todo/add/’, methods=[‘POST’,‘GET’])
保密使用POST GET會在url上顯示使用者資料
- 資料庫操作(models)
匯入flask資料模組 from flask-sqlalchemy import SQLALchemy
資料庫連結
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘mysql+pymysql://root:[email protected]/Todo’
‘mysql+pymysql://使用者:密碼@哪裡操作/資料庫名稱’
建立資料庫表
db.Column函式指定了資料庫中欄位的型別
db.Integer 整型 db.String(50) 字元型 db.DateTime 時間型
autoincrement=True 自動累計 primary_key=True 主關鍵字 unique=True 唯一 nullable=False 是否為空
db.ForeignKey(‘department.id’) 外來鍵 用於獲取另外一個表的值 即部門在使用者處記錄為1 在部門表中1代表xx部 可以減少使用者儲存的資料量 (1個數字與若干個漢字)
db.relationship(‘User’,backref=‘department’) 反向連結 返回與’User’類 相關聯的使用者組成的列表
class User(db.Model):
id = db.Column(db.Integer,autoincrement=True,primary_key=True)
db.create_all() # 建立所有表
db.drop_all() # 刪除所有表
新增資料
u1 = User(name='westos1',pwd='westos',department_id=1) # 例項化
db.session.add(u1) # 新增
db.session.commit() # 提交
name = db.Column(db.String(50),unique=True,nullable=False)
5. 管理資料庫(manage)
需要flask-migrate 及 flask-script 模組
from flask_migrate import Migrate, MigrateCommand
from flask_script import Shell, Manager
分別例項化
manager = Manager(app) # 支援啟動應用程式的命令列
migrate = Migrate(app,db) # 支援資料庫遷移
新增一條資料庫遷移管理命令
manager.add_command('db',MigrateCommand)
新增一條命令,可以顯示所有的使用者
@manager.command
def showUser():
"""顯示所有的使用者"""
users = User.query.all()
print(users[:5])
if __name__ == '__main__':
manager.run()
完成manage資料庫之後,進入命令列
本機的話,啟動進入虛擬環境
使用命令執行manage程式 python manage
檢視可使用的命令
對於記錄資料庫版本的步驟
沒有建立資料庫時
python manage db init # 選擇資料庫進行初始化
python manage migrate -m “註釋”
python manage upgrade