環境方面Python版本3.72,虛擬環境virtualenvwrapper,Flask版本1.1.1,Flask-SQLAlchemy 2.4.1
首先進入你的虛擬環境,安裝相應的庫,推薦使用豆瓣源安裝,不過多解釋
pip install flask
pip install flask-sqlalchemy
from flask_sqlalchemy import SQLAlchemy
步驟3 - 現在創建一個Flask應用程序對象併爲要使用的數據庫設置URI。
app = Flask( __name__)
app. config[ 'SQLALCHEMY_DATABASE_URI' ] = 'sqlite:///students.sqlite3'
app. config[ 'SQLALCHEMY_DATABASE_URI' ] = 'mysql+pymysql://root:[email protected] :3306/test?charset=utf8'
app. config[ 'SQLALCHEMY_DATABASE_URI' ] = 'postgresql://username:password@host/database'
db = SQLAlchemy( app)
class User ( db. Model) :
id = db. Column( 'uid' , db. Integer, primary_key = True )
name = db. Column( db. String( 100 ) )
city = db. Column( db. String( 50 ) )
addr = db. Column( db. String( 200 ) )
def __init__ ( self, name, city, addr) :
self. name = name
self. city = city
self. addr = addr
配置
說明
默認值
autoincrement
是否自增
False
primary_key
主鍵
False
indexE
索引
False
unique
是否唯一
False
nullable
允許字段爲空
False
default
是否自增
類型
描述
對應mysql
Integer
32位整型
int
SmallInteger
32位 整型
smallint
BigInteger
精度不受限整型
bigint
Float
浮點型
float
Numeric
定點數
numeric
String
可變長度字符串
varchar
Text
文本
text
Unicode
可變長度Unicode字符串
Boolean
布爾值
Date
日期
Time
時間
DateTime
文本
Interval
時間間隔
Enum
枚舉
LargeBinary
二進制
create_user = User( name= '張三' , city= '廣州市獵德村' )
db. session. add( create_user)
db. session. commit( )
User. query. all ( )
User. query. filter_by( name= '張三' ) . first( )
User. query. order_by( User. id ) . all ( )
User. query. limit( 1 ) . all ( )
User. query. get( id = 1 )
getuser = User. query. get( 1 )
getuser. name = "李四"
db. session. commit( )
user = User. query. get( 1 )
db. session. delete( user)
db. session. commit( )
User. query. filter_by( city = "廣州" ) . count( )
from sqlalchemy import func
User. query. with_entities( func. sum ( User. id ) ) . filter ( User. id > 1 ) . scalar( )
User. query. paginate( )