• Flask操作mysql


    Flask使用MySql数据库

     

    环境说明

    Centos7 + python3.6 + mysql5.7

    1.安装Flask-SQLAlchemy,pymyql驱动

    pip install flask-sqlalchemy
    pip intall pymysql
    

    2.使用Flask-SQLAlchemy

    Flask-SQLAlchemy数据库URL
    常用的数据库引擎:

    数据库引擎URL
    MySql mysql+pymysql://username:password@host/database
    Postgres postgresql://username:password@host/database

    app.py编辑

    #导入模块
    from flask_sqlalchemy import SQLAlchemy
    import pymysql
    
    #创建flask对象
    app = Flask(__name__)
    
    #配置flask配置对象中键:SQLALCHEMY_DATABASE_URI
    
    app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://username:password@hostname/database"
    
    #配置flask配置对象中键:SQLALCHEMY_COMMIT_TEARDOWN,设置为True,应用会自动在每次请求结束后提交数据库中变动
    
    app.config['SQLALCHEMY_COMMIT_TEARDOWN'] = Ture
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
    app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
    
    #获取SQLAlchemy实例对象,接下来就可以使用对象调用数据
    
    db = SQLAlchemy(app)
    

    3.sqlalchemy列常见参数

    选择项说明
    autoincrement True 是否自增
    primary_key True 是否是主键
    indexE TRUE 是否是索引
    unique True 是否是唯一
    nullable True 是否允许字段为空
    default 默认值

    4.字段类型

    类型名称python类型描述
    Integer int 常规整型,通常为32位
    SmallInteger int 短整型,通常为16位
    BigInteger int或long 精度不受限整型
    Float float 浮点型
    Numeric decimal 定点数
    String str 可变长度字符串
    Text str 可变长度字符串,适合大量文本
    Unicode unicode 可变长度Unicode字符串
    Boolean bool 布尔值
    Date datetime.date 日期类型
    Time datetime.time 时间类型
    DateTime datetime.datetime 日期时间类型
    Interval datetime.timedate 时间间隔
    Enum str 字符列表
    PickleType 任意Python对象 自动Pickle序列化
    LargeBinary str 二进制

    5.使用sqlalchemy

    from app import db
    #创建模型对象
    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        username = db.Column(db.String(80), unique=True, nullable=False)
        email = db.Column(db.String(120), unique=True, nullable=False)
    
    def __repr__(self):
        return '<User %r>' % self.username
    
    # 1.创建表
    db.create_all()
    删除所有
    db.drop_all() # 2.增加记录 admin = User(username='admin', email='admin@example.com') guest = User(username='guest', email='guest@example.com') db.session.add(admin) db.session.add(guest) db.session.commit() #3.查询记录,注意查询返回对象,如果查询不到返回None User.query.all() #查询所有 User.query.filter_by(username='admin').first()#条件查询 User.query.order_by(User.username).all()#排序查询 User.query.limit(1).all()#查询1条 User.query.get(id = 123)#精确查询 # 4.删除 user = User.query.get(id = 123) db.session.delete(user) db.session.commit()
     
  • 相关阅读:
    Codeforces Canda Cup 2016
    Codeforces Round #377(div 2)
    后缀数组专题
    Codeforces Round #375(div 2)
    Codeforces Round #374(div 2)
    [HDU5902]GCD is Funny(xjb搞)
    [HDU5904]LCIS(DP)
    HDU 1251统计难题
    POJ2104 K-TH NUMBER 传说中的主席树
    poj 3041
  • 原文地址:https://www.cnblogs.com/luyi84895838/p/12193436.html
Copyright © 2020-2023  润新知