Flask中之数据库框架和模型类一:SQLAlchemy配置说明,字段类型,约束条件
admin
2023-07-20 10:02:22
0次

Python数据库框架

#  pip install flask-sqlalchemy****
    数据库引擎              URL
   MySQL                    mysql://username:password@hostname/database
    Postgres                  postgresql://username:password@hostname/database
    SQLite(Unix)       sqlite:////absolute/path/to/database
  SQLite(Windows)    sqlite:///c:/absolute/path/to/database

#  在这些 URL 中,hostname 表示 MySQL 服务所在的主机,可以是本地主机(localhost),
# 也可以是远程服务器。数据库服务器上可以托管多个数据库,因此 database 表示要使用的
#  数据库名。如果数据库需要进行认证,username 和 password 表示数据库用户密令。
#  示例  hello.py:配置数据库
from flask.ext.sqlalchemy import SQLAlchemy
basedir = os.path.abspath(os.path.dirname(__file__))
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] =\
 'sqlite:///' + os.path.join(basedir, 'data.sqlite')
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
db = SQLAlchemy(app)
#  db 对象是 SQLAlchemy 类的实例,表示程序使用的数据库,同时还获得了 Flask-SQLAlchemy
# 提供的所有功能。
# 定义模型
示例 5-2 hello.py:定义 Role 和 User 模型
class Role(db.Model):
             __tablename__ = 'roles'
             id = db.Column(db.Integer, primary_key=True)
             name = db.Column(db.String(64), unique=True)
             def __repr__(self):
                         return '' % self.name
class User(db.Model):
             __tablename__ = 'users'
             id = db.Column(db.Integer, primary_key=True)
             username = db.Column(db.String(64), unique=True, index=True)
            def __repr__(self):
                     return '' % self.username
#  类变量 __tablename__ 定义在数据库中使用的表名。
#  如果没有定义 __tablename__,Flask-SQLAlchemy 会使用一个默认名字,
#  但默认的表名没有遵守使用复数形式进行命名的约定,
#  所以最好由我们自己来指定表名。其余的类变量都是该模型的属性,被定义为#  db.Column
#  类的实例。
#  db.Column 类构造函数的第一个参数是数据库列和模型属性的类型。
    类型名                  Python类型                     说  明
Integer                   int 普通整数,              一般是 32 位
SmallInteger          int 取值范围小的整数   一般是 16 位
BigInteger              int 或 long                    不限制精度的整数
Float                      float                              浮点数
Numeric                decimal.Decimal           定点数
String                    str                                 变长字符串
Text                       str               变长字符串,对较长或不限长度的字符串做了优化
Unicode                 unicode                    变长 Unicode 字符串
UnicodeText         unicode                对较长或不限长度的字符串做了优化
Boolean                 bool                           布尔值
Date                    datetime.date               日期
Time                    datetime.time               时间
DateTime           datetime.datetime          日期和时间
Interval                datetime.timedelta          时间间隔
Enum                   str                                   一 组字符串
PickleType           任何 Python 对象           自动使用 Pickle 序列化
LargeBinary         str                                   二进制文件
#  最常使用的SQLAlchemy列选项,也即约束条件

primary_key         如果设为 True,这列就是表的主键
unique                  如果设为 True,这列不允许出现重复的值
index                   如果设为 True,为这列创建索引,提升查询效率
nullable                如果设为 True,这列允许使用空值;如果设为 False,这列不允许使用空值
default                 为这列定义默认值
doc                      字段说明 

# Flask-SQLAlchemy 要求每个模型都要定义主键,这一列经常命名为 id。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...