flask-sqlalchemy的使用


1.安裝

pip3 isntall flask-sqlalchemy

2.實例化一個sqlalchemy對象

 
         
# __init__.py

from
flask import Flask from flask_session import Session from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() # 因為是初始化數據庫,所以操作要放在__init__.py文件中。 # manager.py文件中只需要執行app.run()啟動flask即可。

3.初始化數據庫表

# models.py文件

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column
from sqlalchemy import Integer,String,Text,Date,DateTime
from sqlalchemy import create_engine
from day122 import db    # 倒入剛才生成的sqlalchemy對象


class Users(db.Model):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String(32), index=True, nullable=False)
    # depart_id = Column(Integer)


# __init__.py
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()

from .models import *

def create_app():

    app = Flask(__name__)
    app.config.from_object('settings.ProdConfig')

    app.register_blueprint(ac)
    app.register_blueprint(user)

    # Session(app)

    db.init_app(app)

    return app

# 這里from .models import *操作必須放在實例化sqlalchemy之后,因為該操作倒入的db模塊里面使用了sqlalchemy對象。

4.手動創建數據庫表

from mywork import db,create_app

app = create_app()
app_ctx = app.app_context() # app_ctx = app/g
with app_ctx: # __enter__,通過LocalStack放入Local中
    db.create_all() # 調用LocalStack放入Local中獲取app,再去app中獲取配置

5.使用數據庫

from mywork import db
from mywork import models

@ac.route('/login')
def login():
    ret = db.session.query(models.Users).all()
    for row in ret:
        print(row.id,row.name)

    return 'Login'

6.數據庫表的遷移

依賴:flask-script
pip3 install flask-migrate
from flask_migrate import Migrate, MigrateCommand

Migrate(app, db)

"""
# 數據庫遷移命名
    python manage.py db init
    python manage.py db migrate
    python manage.py db upgrade
"""
manager.add_command('db', MigrateCommand)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM