zoukankan      html  css  js  c++  java
  • flask-sqlalchemy的基本使用

    flask-sqlalchemy

    1 .配置应用和基本使用

    和sqlalchemy一样,先定义好数据库配置和db_url。然后在app的config加入SQLALCHEMY_DATABASE_URI等于配置好的db_url。在初始化db对象即可。
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    from settings import DATABASES
    
    app = Flask(__name__)
    
    DB_URL = 'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOST}:{PORT}/{DATABASE}'.format(**DATABASES)
    
    app.config['SQLALCHEMY_DATABASE_URI'] = DB_URL
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    db = SQLAlchemy(app)
    
    
    class User(db.Model):
        __tablename__ = 'user'
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        name = db.Column(db.String(50))
    
    
    class Article(db.Model):
        __tablename__ = 'article'
        id = db.Column(db.Integer, primary_key=True, autoincrement=True)
        name = db.Column(db.String(50))
        user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    
        user = db.relationship('User', backref=db.backref(__tablename__, lazy='dynamic'))
    
    
    @app.route('/')
    def hello_world():
        return 'hello world'
    
    
    db.create_all()
    
    # 增加数据
    user = User(name='ivy')
    article = Article(name='title')
    article.user = user
    
    db.session.add(article)
    db.session.commit()
    
    # 查询数据
    first_user = user = db.session.query(User).first()
    print(first_user.name)
    print(first_user.article.first().name)
    
    if __name__ == '__main__':
        app.run()
    
    

    2 .配合alembic

    • alembic.ini的文件的配置不变
    • 在alembic的文件夹的env.py中, 将生成的db对象文件模块导入, app.db.Model.metadata
  • 相关阅读:
    Linux CentOS7 下设置tomcat 开机自启动
    MYSQL批量导入数据报:[Err] 2006
    HTML页面仿WORD样式
    /usr/bin/ld: cannot find -lxxx 问题
    Linux 重命名
    Linux mail
    cenos 7 mysql
    linux 解压与压缩
    python 字符串替换
    cpu相关信息(进程、线程、核...)
  • 原文地址:https://www.cnblogs.com/ivy-blogs/p/11591830.html
Copyright © 2011-2022 走看看