Sqlchemy特點與ORM增刪改查操作
1.Sqlchemy特點
1.sqlchemy支援的欄位型別
2.sqlchemy支援的欄位限制
3.sqlchemy查詢過濾器
4.sqlchemy執行函式
2.ORM的增刪改查
首先我們建立三個表,user,student,role 都在名為student1的資料庫內
first 表之間的關聯
注意:這裡的__repr__函式是會自動執行的不需呼叫
因為user和role_id是多對一的關係,所以用外來鍵關聯
相反role和user是一對多,所以用反向引用
這樣我們就生成了三個資料庫表
second 向表內寫入資料
其中 db.session.add( )是新增內容到表裡
db.session.commit ( )是同步資料庫表
我們可以看到資料庫
third 資料的檢查以及檢查方法
在程式碼最後新增: print (Role.query.all ( ) ) … print( User.query.all ( ) )
就會列印名字
因為程式碼中有__repr__( ) 函式,所以會顯示
forth 根據條件查詢
結果
fifth 更新內容
更改user表中名為redhat49使用者密碼
返回如下
最終我們在資料庫中看到
sixth 對於查詢資訊進行限制顯示
這裡我們只要前五個
返回如下
seventh 多個過濾函式加一個顯示函式
這裡對於查詢資訊進行排序 預設由小到大 ,由大到小 desc( User.add_time) ;
顯而已見,正常排序是由大到小
偏移量是向右偏移
而切片從第三個開始,是和偏移量一個作用
count 代表長度
eighth 分頁
第一個引數代表第幾頁,第二個引數代表每頁顯示多少條資料
ninth 反向引用的使用
3.補充…flask_bootstrap
1.如何在flask中使用Bootstrap
要想在程式中整合Bootstrap,顯然要對模板做所有必要的改動.不過更簡單的方法是使用一個名為Flask-Bootstrap的Flask擴充套件,簡化整合的過程. Flask-Bootstrap使用pip安裝:
pip install flask_bootstrap
2.Flask擴充套件一般都在建立程式例項時初始化,下面是Flask_Bootstrap的初始化方法
‘’’
from flask_bootstrap import Bootstrap
app=Flask(__name__)
bootstrap=Bootstrap(app)
初始化Flask-Bootstrap之後,就可以在程式中使用一個包含所有Bootstrap檔案的基模板. 這個模板利用jinjia2的模板繼承機制,讓程式擴充套件一個具有基本頁面結構的基模板,其中就有用來引入Bootstrap的元素.
3.Flask-Bootstrap定義的其他可用塊:
參考連結: https://pythonhosted.org/Flask-Bootstrap/basic-usage.html#available-blocks
塊名 說明
doc 整個html文件
html_attribs html標籤屬性
html html標籤中的內容
head head標籤中的內容
title title標籤中的內容
metas 一組meta標籤
styles 層疊樣式表定義
body_attribs body標籤的屬性
body body標籤中的內容
navbar 使用者定義的導航條
content 使用者定義的頁面內容
scripts 文件底部的JavaScript 宣告
4.如何引用bootstrap的基模板
{%extends "bootstrap/base.html"%}
{%block title %}Flask{% endblock %}
5.如何繼承原有內容
上表中的很多塊都是Flask-Bootstrap 自用的,如果直接重定義可能會導致一些問題。例如,Bootstrap 所需的檔案在styles 和scripts 塊中宣告。如果程式需要向已經有內容的塊中新增新內容,必須使用Jinja2 提供的super() 函式。例如,如果要在衍生模板中新增新的JavaScript 檔案,需要這麼定義scripts 塊:
{% block scripts %}
{{ super() }}
{% endblock %}
4.補充…Flask_wtf
- flask-bootstrap(新增css, js樣式)—提供了base.html, wtf.html
- flask-wtf(表單處理)-
- 表單型別(StringField, PasswordField, SubmitField, FileField)
- 驗證表單(DataRequired, Length, Email, Regexp, EqualTo)
- flask-wtf(表單處理)-
這裡附帶json的一個例子