zoukankan      html  css  js  c++  java
  • 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()
    
    # 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()
    

    6.具体实例代码可以看我的git有个flask+requests爬取小说展示项目

    基于flask+requests小说爬取项目

  • 相关阅读:
    C++中字符串与字符串函数的使用
    面试题17:打印从1到最大的n位数
    动态规划:0-1背包
    POJ 2386 Lake Counting (简单深搜)
    HDU 2612 Find a way 简单广搜
    POJ 3669 Meteor Shower (BFS+预处理)
    深搜(DFS)广搜(BFS)详解
    HDU6055 Regular polygon(计算几何)
    hdu 6047 Maximum Sequence 贪心
    hdu 6045 Is Derek lying?(思维推导)
  • 原文地址:https://www.cnblogs.com/lonelyhiker/p/8486221.html
Copyright © 2011-2022 走看看