• Flask 学习13.FlaskSQLAlchemy 新建模型和字段 上海


    前言

    Flask-SQLAlchemy是一个Flask扩展,简化了在Flask应用中使用SQLAlchemy的操作。

    定义模型

    在python代码中创建一个类,每个类对应了一个数据库中的一张表,类的数据属性对应了表中的字段名,这个类称为映射类。

    创建模型示例

    from flask import Flask, url_for, request, redirect, render_template
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    # 设置数据库连接地址
    DB_URI = 'mysql+pymysql://root:123456@127.0.0.1:3306/web'
    app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
    # 是否追踪数据库修改,一般不开启, 会影响性能
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    # 是否显示底层执行的SQL语句
    app.config['SQLALCHEMY_ECHO'] = True
    
    # 初始化db,关联flask 项目
    db = SQLAlchemy(app)
    
    
    # 创建模型
    class Students(db.Model):
        __tablename__ = 'students'  # 数据库表名
    
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(20))
        fullname = db.Column(db.String(30))
        nickname = db.Column(db.String(30))
    
        def __repr__(self):
            return "<Students(name='%s', fullname='%s', nickname='%s')>" % (
                     self.name, self.fullname, self.nickname)
    
    
    if __name__ == '__main__':
        # 创建表
        db.create_all()
        app.run(debug=True)
    

    运行后,数据库会生成对应的表

    创建表和删除表的2个操作

    # 删除所有表
    db.drop_all()
    # 创建所有表
    db.create_all()
    

    常用字段

    sqlalchemy常用数据类型:

    参数 类型
    String 字符类型,使用时需要指定长度,区别于Text类型
    Text 文本类型
    LONGTEXT 长文本类型
    Integer 整形
    Float 浮点类型
    Boolean 传递True/False
    Decimal 具有小数点而且数值确定的数值
    Enum 枚举类型
    DateTime 日期时间类型
    Date 传递datetime.date()进去
    Time 传递datatime.time()

    针对字段的一些参数设置

    参数 说明
    primary_key 是否为主键
    autoincrement 是否自动增长
    unique 是否唯一
    default 默认值
    nullable 是否允许为空
    onupdate 更新的时候执行的函数
    name 该属性在数据库中的字段映射
    index 是否创建索引,提高查询效率

    没有给对应字段的类属性设置default参数, 且添加数据时也没有给该字段赋值, 则sqlalchemy会给该字段设置默认值 None

  • 相关阅读:
    001-Go JSON处理
    cpu高占用,线程堆栈,jstack,pstack,jmap, kill -3 pid,java(weblogic,tomcat)
    jQuery插入,复制、替换和删除节点
    jquery 控制css样式
    10分钟掌握XML、JSON及其解析
    阻止跳转的四种方式,你知道吗?
    jQuery事件绑定和委托
    响应式Web设计的9项基本原则
    网友写的验证码生成方案,可防止绝大多数机械识别。
    7个高性能JavaScript代码高亮插件
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16616702.html
Copyright © 2020-2023  润新知