zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Call KernelIoControl in user space in WINCE6.0
    HOW TO:手工删除OCS在AD中的池和其他属性
    关于新版Windows Server 2003 Administration Tools Pack
    关于SQL2008更新一则
    微软发布3款SQL INJECTION攻击检测工具
    HyperV RTM!
    OCS 2007 聊天记录查看工具 OCSMessage
    CoreConfigurator 图形化的 Server Core 配置管理工具
    OC 2007 ADM 管理模板和Live Meeting 2007 ADM 管理模板发布
    Office Communications Server 2007 R2 即将发布
  • 原文地址:https://www.cnblogs.com/ttyypjt/p/11101782.html
Copyright © 2011-2022 走看看