博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Flask中之数据库框架和模型类一:SQLAlchemy配置说明,字段类型,约束条件
阅读量:5766 次
发布时间:2019-06-18

本文共 3082 字,大约阅读时间需要 10 分钟。

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 SQLAlchemybasedir = 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'] = Truedb = 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.nameclass 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。

转载于:https://blog.51cto.com/13914991/2172809

你可能感兴趣的文章
前端布局原理涉及到的相关概念总结
查看>>
递归调用 VS 循环调用
查看>>
使用sstream读取字符串中的数字(c++)
查看>>
树莓派下实现ngrok自启动
查看>>
javascript静态类型检测工具—Flow
查看>>
MachineLearning-Sklearn——环境搭建
查看>>
node学习之路(二)—— Node.js 连接 MongoDB
查看>>
Goroutine是如何工作的?
查看>>
《深入理解java虚拟机》学习笔记系列——垃圾收集器&内存分配策略
查看>>
TriggerMesh开源用于多云环境的Knative Event Sources
查看>>
GitLab联合DigitalOcean为开源社区提供GitLab CI免费托管
查看>>
通过XAML Islands使Windows桌面应用程序现代化
查看>>
区块链现状:从谨慎和批判性思维看待它(第二部分)
查看>>
苹果公司透露Siri新发音引擎的内部原理
查看>>
GCM 3.0采用类似方式向Android、iOS和Chrome发送消息
查看>>
如何成为一家敏捷银行
查看>>
Oracle在JavaOne上宣布Java EE 8将会延期至2017年底
查看>>
Javascript 深入浅出原型
查看>>
简单之极,搭建属于自己的Data Mining环境(Spark版本)
查看>>
Ruby 2.5.0概览
查看>>