Flask框架學習筆記 2

2021-09-27 00:05:54 字數 3793 閱讀 3598

flask中,模板變數可以進行加減運算的

>

>

name = }p

>

>

age = }p

>

>

my_dict: city= }p

>

>

my_dict: city= }p

>

>

my_list: }p

>

>

my_list[my_int]: }p

>

>

my_list[0] + my_list[1] = }p

>

>

}p>

body

>

帶引數的巨集

type

="}"

name

="}"

value

="}"

size

="}"

/>

把巨集單獨封裝在html檔案中

如該模板檔案不存在,則會丟擲異常,加上ignore missing時,則會忽略包含語句

常用的sqlalchemy欄位型別

型別名python中型別

說明integer

int普通整數,一般是32位

smallinteger

int取值範圍小的整數,一般是16位

biginteger

int或long

不限制精度的整數

float

float

浮點數numeric

decimal.decimal

普通整數,一般是32位

string

str變長字串

text

str變長字串,對較長或不限長度的字串做了優化

unicode

unicode

變長unicode字串

unicodetext

unicode

變長unicode字串,對較長或不限長度的字串做了優化

boolean

bool

布林值date

datetime.date

時間time

datetime.datetime

日期和時間

largebinary

str二進位制檔案

常用的sqlalchemy列選項

選項名說明primary_key

如果為true,代表表的主鍵

unique

如果為true,代表這列不允許出現重複的值

index

如果為true,為這列建立索引,提高查詢效率

nullable

如果為true,允許有空值,如果為false,不允許有空值

default

為這列定義預設值

常用的sqlalchemy關係選項

選項名說明backref

在關係的另一模型中新增反向引用

primary join

明確指定兩個模型之間使用的聯結條件

uselist

如果為false,不使用列表,而使用標量值

order_by

指定關係中記錄的排序方式

secondary

指定多對多中記錄的排序方式

secondary join

在sqlalchemy中無法自行決定時,指定多對多關係中的二級聯結條件

from flask import flask

from flask_sqlalchemy import sqlalchemy

class

config

(object):

"""配置引數"""

# sqlalchemy的配置引數

sqlalchemy_database_uri =

"mysql:"

# 設定sqlalchemy自動更跟蹤資料庫

sqlalchemy_track_modifications =

true

# 建立資料庫sqlalchemy工具物件

class

role

(db.model)

:"""使用者角色/身份表"""

__tablename__ =

"tbl_roles"

# 指明資料庫的表名

id= db.column(db.integer, primary_key=

true

) name = db.column(db.string(32)

, unique=

true

) users = db.relationship(

"user"

, backref=

"role"

)# 表名的常見規範:資料庫名縮寫_表名

# 建立資料庫模型類

class

user

(db.model)

:"""使用者表"""

__tablename__ =

"tbl_users"

id= db.column(db.integer, primary_key=

true

)# 整型的主鍵,會預設設定為自增主鍵

name = db.column(db.string(64)

, unique=

true

) email = db.column(db.string(

128)

, unique=

true

) password = db.column(db.string(

128)

) role_id = db.column(db.integer, db.foreignkey(

"tbl_roles.id"

))

id = db.column(db.integer, primary_key=true)integer為字段型別,primary_key相當於約束;

users = db.relationship("user", backref="role")相當於給role新增了乙個users屬性,方便從role查詢user中的資訊,backref="role"反向應用,相當於是給user新增了乙個role屬性,方便反過來查詢

role_id為外來鍵,db.foreignkey("tbl_roles.id")指明與哪張表哪個字段關聯

更新

刪除

user = user.query.get(2)

db.session.delete(user)

db.session.commit(

)

Flask框架學習2

def for url return url for my list page 10,count 3 def my list page print 1111111111111111111 url for裡面 第乙個是檢視函式,第二個是url需要的引數,url for裡面多的引數會當做搜尋字元 ret...

小福利,flask框架學習筆記(3)

py檔案 from flask import flask,render template context def if for return render template if for.html context def macro return render template macro.html...

python WEB框架Flask學習

from flask import flask def index return index if name main 方式一 方式二列如 settings.py class config debug true 連線mysql示例 database uri mysql pymysql 資料庫名 開發...