天天看點

Flask入門的第一個項目進階版前言:

前言:

此次版本增加【一對多】資料庫關系和動态路由設定。

一、資料庫設計

environments表與variable1表的關系為:一對多。variable1.env_id設定為外鍵,與environments表建立關系。

Flask入門的第一個項目進階版前言:
Flask入門的第一個項目進階版前言:

二、建立資料庫模型

如下圖所示,Variable模型中的env_id列被定義為外鍵,就是這個外鍵建立起了關系。傳給db.ForeignKey()的參數'environments.id'表明,這列的值是environments表中行的id值。 

Flask入門的第一個項目進階版前言:

三、多表查詢 

Flask入門的第一個項目進階版前言:

1、查找environments表中的id為1,對應的所有Variable資料

Variable.query.filter_by(env_id=1).join(Environments, Variable.env_id == Environments.id)

2、查找environments表中的id為1,對應的一條Variable.id 為2的Variable資料

Variable.query.filter_by(env_id=1,id=2).join(Environments,Variable.env_id == Environments.id).first_or_404()

四、比對動态url

在Flask中,可以将URL中的可變部分使用一對小括号<>聲明為變量, 并為視圖函數聲明同名的參數:

@app.route('/delete/<int:id>')

@app.route('/change/<int:env_id>/<int:id>',methods=['GET','POST'])

endpoint的映射包含變量: 

redirect(url_for('show_variable_list',_external=True,env_id=env_id))

五、開源代碼

https://github.com/wangxiaoxi3/Flask_test_1

以上,希望能對你有所幫助~~歡迎交流,共同進步~~

作者:

擱淺

出處:

http://www.cnblogs.com/xiaoxi-3-/

如果對您有幫助,請關注我的同名簡書:

https://www.jianshu.com/u/da1677475c27

本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。