Flask框架—flask_sqlalchemy組件使用

1、flask_sqlalchemy組件

咱們以前學過SQLAlchemy,一個獨立的數據庫關係對象映射,其實在flask中也有官方承認的第三方SQLAlchemy組件,用於處理flask中對象關係映射。mysql

1.安裝flask_sqlalchemy

pip install flask_sqlalchemy

2.項目準備

咱們準備一個乾淨的flask項目,目錄結構以下,下面咱們基於這個項目,加入flask_sqlachemy使項目操做數據庫。sql

1.加入flask_sqlalchemy組件數據庫

flask_sqlalchemy_project/__init__.pyflask

from flask import Flask
​
# 導入Flask-SQLAlchemy中的SQLAlchemy
from flask_sqlalchemy import SQLAlchemy
​
# 實例化SQLAlchemy
db = SQLAlchemy()
# PS : 實例化SQLAlchemy的代碼必需要在引入藍圖以前
from flask_sqlalchemy_lesson.views import user
​
def create_app():
    app = Flask(__name__)
​
    # 初始化App配置 這個app配置就厲害了,專門針對 SQLAlchemy 進行配置
    # SQLALCHEMY_DATABASE_URI 配置 SQLAlchemy 的連接字符串兒
    app.config["SQLALCHEMY_DATABASE_URI"] = "mysql+pymysql://root:DragonFire@127.0.0.1:3306/dragon?charset=utf8"
    # SQLALCHEMY_POOL_SIZE 配置 SQLAlchemy 的鏈接池大小
    app.config["SQLALCHEMY_POOL_SIZE"] = 5
    # SQLALCHEMY_POOL_TIMEOUT 配置 SQLAlchemy 的鏈接超時時間
    app.config["SQLALCHEMY_POOL_TIMEOUT"] = 15
    app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
​
    # 初始化SQLAlchemy , 本質就是將以上的配置讀取出來
    db.init_app(app)
​
    app.register_blueprint(user)
​
    return app

2.創建models.py文件,ORM模型文件session

from flask_sqlalchemy import SQLAlchemy
from flask_sqlalchemy_lesson import db
​
# Base = db.Model # 這句話你是否還記的?
# from sqlalchemy.ext.declarative import declarative_base
# Base = declarative_base()
# 每一次咱們在建立數據表的時候都要作這樣一件事
# 然而Flask-SQLAlchemy已經爲咱們把 Base 封裝好了
# 創建User數據表
class Users(db.Model):
    # 指定一個表名
    __tablename__="user_flask"
    
    # 在SQLAlchemy 中咱們是導入了Column和數據類型 Integer 在這裏就和db.Model同樣,已經封裝好了
    id = db.Column(db.Integer,primary_key=True)
    name = db.Column(db.String(32),nullable=False)
​
if __name__ == '__main__':
    from day101_SQLAlchemy.flask_sqlalchemy_lesson import create_app  # 導入數據庫的
    app = create_app()
    db.create_all(app=app)

3.藍圖函數中user.pyapp

from flask import Blueprint
from day101_SQLAlchemy.flask_sqlalchemy_lesson.models import Users,db
​
user_bp = Blueprint("user_bp",__name__)
​
​
@user_bp.route("/add_user/<username>",methods=["GET","POST"])
def add_user(username):
    u = Users(name=username)
    db.session.add(u)  # 打開數據庫鏈接窗口
    db.session.commit()
    return "200 add success"
​
@user_bp.route("/get_user/<username>",methods=["GET","POST"])
def get_user(username):
    u = Users.query.filter(Users.name == username).first()
    return u.name

4.運行項目manage.py文件less

from day101_SQLAlchemy.flask_sqlalchemy_lesson import create_app
​
app = create_app()
​
if __name__ == '__main__':
    app.run()

運行項目,就能夠訪問add_user和get_user來添加數據可查詢數據了。函數

相關文章
相關標籤/搜索