基於Flask+flask-sqlalchemy使用MySql數據庫

環境方面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__)
#這裏是默認連接的是sqllite
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.sqlite3'
#接下來是mysql
#app.config['SQLALCHEMY_DATABASE_URI'] = '數據庫類型://數據庫登錄名:數據庫登錄密碼@數據庫的地址:數據庫的端口/數據庫的名字'
app.config['SQLALCHEMY_DATABASE_URI'] ='mysql+pymysql://root:[email protected]:3306/test?charset=utf8'
#postgresql
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 二進制
  • 操作數據庫
# creat
create_user = User(name='張三', city='廣州市獵德村')
db.session.add(create_user)
db.session.commit()

#3.select
User.query.all() #查詢所有
User.query.filter_by(name='張三').first()#條件查詢
User.query.order_by(User.id).all()#排序查詢
User.query.limit(1).all()#查詢1條
User.query.get(id = 1)#精確查詢

#update
getuser = User.query.get(1)
getuser.name = "李四"
db.session.commit()

# 4.delete
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()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章