本篇文章主要介绍了"Flask 框架学习三",主要涉及到方面的内容,对于MySql感兴趣的同学可以参考一下:
( 上接Flask 框架学习(二) )4、数据库SQLAlchemy文档4.1 引入Flask在可使用的数据库包上没有限制,所以可以使用MySQL、Postgr...
( 上接Flask 框架学习(二) )
4、数据库
SQLAlchemy文档
4.1 引入
Flask在可使用的数据库包上没有限制,所以可以使用MySQL、Postgres、SQLite、Redis、MongoDB或者CouchDB等等任意一个。
这里要引入一个概念。
ORM(对象关系映射,Object Relational Mapping)
是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。
听着就感觉很蛋疼,我们即将使用的Flask-SQLAlchemy扩展就是一个已经封装了关系对象映射(ORM)的一个插件。
而ORMs允许数据库程序用对象的方式替代表和SQL语句。面向对象的操作被ORM转化为数据库命令。这样就意味着,不用sql语句,让Flask-SQLAlchemy为我们执行sql语句。
简单的说,就是如SQLAlchemy或MongoEngine让你像操作常规Python对象那样,而不是数据库实体表、文档或查询语句。
应该稍微明白一点了,在之后的例子中能够很快就明白的。
此处我们以链接Mysql为例,在我们使用数据库的时候,需要在Flask配置对象中的SQLALCHEMY_DATABASE_URI
键中进行配置。另一个有用的选项是SQLALCHEMY_COMMIT_ON_TEARDOWN
,可以设置为True来启用自动提交数据库更改在每个请求中。
下述为.py文件的配置部分:
from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] ="mysql://root:@localhost/flask"
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=True
db = SQLAlchemy(app)
在SQLALCHEMY_DATABASE_URI
键的配置时,规定使用url来确定数据库,几个常用数据库的配置URL如下:

hostname是指托管MySQL服务的服务器(本地localhost或是远程服务器)
database指出要使用的数据库名
username和 password是数据库用户凭证
我的URL配置是
mysql://root:@localhost/flask
即我使用的用户名是root,而且没有密码,然后连接本地服务器,使用了名为flask的数据库。
现在我们例子如下: