本文共 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