1. 程式人生 > >Flask入門的第一個專案進階版

Flask入門的第一個專案進階版

前言:

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

一、資料庫設計

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

二、建立資料庫模型

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

三、多表查詢 

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

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

相關推薦

Flask入門第一專案

前言: 此次版本增加【一對多】資料庫關係和動態路由設定。 一、資料庫設計 environments表與variable1表的關係為:一對多。variable1.env_id設定為外來鍵,與environments表建立關係。 二、建立資料庫模型 如下圖所示,Variable模型中

webpack4打包nodejs專案——多頁應用模板

前段時間我寫了個打包nodejs專案的文章,點選前往 但是,問題很多。因為之前的專案是個歷史遺留專案,重構起來可能會爆炸,當時又比較急所以就寫個的適用範圍很小的webpack的打包方法。 最近稍微得空,便動了重構的心思,重構第一步當然要把架子搭起來 而搭架子的過程也是十分地艱辛啊,終於大概搞定了前端的部

Venn plot:Upset plot入門實戰程式碼詳解——UpSetR包介紹

        網上已有一些帖子講解了Upset plot的背景知識和實現方法,本文旨在從實戰角度出發,解讀Upset plot實現的一些途徑及其優劣勢以及如何通過upsetR包實現Upset plot的繪製,並提供程式碼和input格式示例。另博主在使用

Spring Boot入門(一)Spring Boot+IDEA+JDK1.8開發環境和第一專案的搭建,附所需資源連結

前言    博主第一次瞭解Spring Boot 這個框架,之前的時候就一直對這個框架心馳神往,如今剛開始學習這個框架,把學習歷程和過程中遇到的問題和解決方法記錄下來,與大家一起分享! 關於Spring Boot   

vue入門(一)安裝及建立第一專案

前端近幾年來飛速發展,各種技術框架層出不窮,架構模式也從主流MVC慢慢轉向MVVM。使用AngularJS、React和Vue.js等框架進行前端開發已經成為趨勢。因此我也開始了vue.js的修煉之路(之所以選擇vue.js是因其入門門檻低)。 一、安裝 為了讓我們建立Vue專案更加容易,我

Spring Boot / Spring MVC 入門實踐 (一) :環境搭建與第一專案

宣告 本系列文章系本人原創,歡迎轉載,轉載請註明出處。 本系列文章通過具體的例子,介紹如何通過Spring Boot來幫助簡化Spring MVC開發Web Application的過程,旨在通過具體的實踐,使讀者能夠入門利用Spring Boot開發Web

Git入門--使用GitBush提交自己本地的第一專案(親測有效)

前言 正文 1.在GitHub上建立專案 登入GitHub後,你可以在右邊靠中那裡找到一個按鈕“New Repository”,點選過後,填入專案名稱、說明和網址過後就可以建立了,然後會出現一個提示頁面,記下類似[email protecte

Pycharm專業+Django2.1,建立第一專案遇到的問題

二、主要記錄遇到的問題: python編碼錯誤 .1建立專案完畢後,執行py manage.py runserver,提示如下錯誤: 可以看出來是編碼問題,但是隻怪自己才疏學淺,不知道怎麼改,改哪裡。百度、Google了好久方法,都沒找到 .2

微軟發布Azure Stack第一技術預覽

模式 net cto linux 第一個 企業 網絡 靈敏度 連接 為了提升商業靈敏度和加快創新步伐,各個企業都在迅速地轉向雲服務。在微軟,我們已經見到微軟智能雲Azure的飛速發展和使用,每月我們都有近十萬的新增訂閱量。然而,我們也了解到還有很多企業在完全移到公有雲這點上

四則運算

過去 alt 選擇 logs tro 生成 自己 文檔 height 鄭媛:201421122093 雍斌凡:201421122100 coding地址:https://coding.net/u/Jerryii/p/Arithmetic2.0/git/tree/master

房價預測《,測試》

rest 哪些 tle blog model lln one atp feature #coding=utf8 import numpy as np import pandas as pd from sklearn.linear_model import Ridge f

BZOJ 2243 染色 | 樹鏈剖分模板題

pos sam class getchar() spa namespace top logs ati BZOJ 2243 染色 | 樹鏈剖分模板題進階版 這道題呢~就是個帶區間修改的樹鏈剖分~ 如何區間修改?跟樹鏈剖分的區間詢問一個道理,再加上線段樹的區間修改就好了。 這道

WiFi攻擊——Deauth攻擊

Wifi安全 Deauth 硬件安全 WiFi攻擊 一、背景介紹: 在之前我們做過Wi-Fi定位劫持實驗,其實有關Wi-Fi的攻擊方式還有很多,而且其中的大多數需要的設備和操作都很簡單。今天就再介紹一種破壞性更強、隱蔽性更高的攻擊方式——取消驗證洪水攻擊。首先了解一下什麽是取消驗證洪水攻擊:

MySQL數據庫 --MySQL項目優化

-- id字段 來替 方式 差異 判斷 添加 表示 sin 項目中常用的 19 條 MySQL 優化方案 聲明一下:下面的優化方案都是基於 “ Mysql-索引-BTree類型 ” 的 一、EXPLAIN 做MySQL優化,我們要善用 EXPLAIN 查看SQL執行計劃。

Python爬蟲新手:怎樣讀取非結構化、圖像、視頻、語音數據

image clas 訓練 在線的 功能 方式 base64編碼 contain width 通過open讀取之後會返回一個圖像文件對象,後續所有的圖像處理都基於該對象進行。上述代碼執行後,通過 img.show() 會調用系統默認的圖像瀏覽器查看打

MMM架構實現MySQL高可用讀寫分離(,包含Amoeba)

meid _id status mysqld 服務無法啟動 flush 忽略 kit pri 前兩天逛博客偶然發現了某大神寫的關於MMM的文章,看完就迫不及待的自己試了一下,大神寫的很順暢,以為自己也能操作的很順暢,但是實際情況是手腳太不麻利,碰到很多坑,如果大神的

四則運算

%d () 分數 std 支持 break stdlib.h 輸入 題目 在原有四則運算基礎上,除整數以外要支持真分數運算(驗證正確性) 一次出的題避免相互重復 可定制出題數目 #include <stdio.h>#include <stdlib.

結對作業二——WordCount

reporting app develop plan https tps 工作 clas .html 軟工作業三 要求地址 作業要求地址 結對碼雲項目地址 結對夥伴:秦玉 博客地址 PSP表格 PSP2.1 個人開發流程 預估耗費時間(分鐘) 實際耗費時間(分鐘)

weex第一專案的建立執行

文章目錄 專案建立 平臺引入 js檔案打包及載入 專案建立 首先上一張建立的操作過程圖: 在weex相關環境搭建好以後,使用命令:"weex create 目錄"開始建立專案,建立過程中會提供一系列選擇項由自己做出選擇,途中c

Django系列之第一專案搭建

一、安裝   (1)使用pip3 install django在控制檯安裝django;   (2)新增到環境變數    二、建立專案   方式1:通過命令建立  (1)建立project: 通過django-admin.py startproject mysite: mysite為自己的專案名稱