Flask要點
一、藍圖
1.在modules目錄下創建功能模塊目錄(如:home、passport、user)。
2.在功能模塊目錄下再創建_init_.py 、views.py
3.在功能模塊目錄下的init.py中創建藍圖對象,並讓視圖函數和程序建立關聯,代碼如下:(以user模塊爲例)
4.在info目錄下init.py,註冊藍圖對象
5.在功能模塊目錄下views.py下導入藍圖,創建路由
二、POST、GET
1.傳輸敏感信息用POST
json
form 文件
2.讀取頁面一般用GET
args
動態URL
三、報錯
異常捕獲 @app.errorhandler(錯誤代碼)
如果是後端渲染 一般用abort()報錯 最後顯示並提供數據 return render_template("",data=data)
如果是前端渲染 一般用錯誤碼報錯 最後返回的是json數據 return jsonify(errno=RET.PARAMERR, errmsg=error_map[RET.PARAMERR])
current_app.logger.error(e) 是用於記錄錯誤日誌,配合try except 使用
`try:
img_bytes = avatar_file.read()
except BaseException as e:
current_app.logger.error(e)
`
四、開發流程
1.需求分析
2.構建表結構
3.接口文檔
4.前後端同步開發
5.後端POSTMAN測試
6.前端開發完,如果前端渲染,顯示頁面 send_static_file,提供數據 json返回
如果後端渲染 顯示並提供數據 render_template()
五、接口設計
數據庫行爲
增刪改查
關係建立/解除
渲染方式
需要SEO→後端渲染→rende_tempalte()
需要局部刷新→前端→json返回
請求方式
GET→args/動態URL
POST→json/form 文件
響應形式html/json
六、SQLAlchemy
ORM
原生代碼操作數據庫
類->表 屬性->字段 對象->記錄
配置 創建連接對象 db = SQLAlchemy(app)
基本操作
class User(db.Model)
db.session.add() add_all()
db.session.commit()
db.sesioon.delete()
七、用代碼生成管理員賬號
flask-script可以將函數設置爲自定義的命令
格式如下:
# 可以將有參函數設置爲命令 python main.py create_superuser -u admin -p 123456
@mgr.option("-u",dest="username")
@mgr.option("-p",dest="password") # 一行只能寫一個參數
# 可以將無參函數設置爲命令 python main.py demo1
@mgr.command
演示代碼:
mgr = Manager(app)
在創建管理器後使用
八、裝飾器封裝數據查詢
在common.py中定義要封裝的函數
在模塊文件中調用
程序會先執行封裝的函數,再執行原函數,用f(*args,**kwargs)不定長參數傳參沒有傳參數的話不會報錯,建議使用!