1. 程式人生 > >使用Flask框架的整體流程

使用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上顯示使用者資料

  1. 資料庫操作(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

6. 前端頁面(templates)