(1)初始化 sqlalchemy
1:再单个应用当中初始化
from flask import Flaskfrom flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
2:在应用结构中初始化(利用模块当中的init_app(app))
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
def create_app():
app = Flask(__name__)
db.init_app(app)
return app
(2)配置数据库(采用mysql的话就必须要加上pynysql前提是安装这个包)
SQLALCHEMY_DATABASE_URI ='mysql+pymysql://root:yjr19971210@localhost/flaskapp'
Integer 一个整数String (size)有长度限制的字符串
Text 一些较长的 unicode 文本
DateTime 表示为 Python datetime 对象的 时间和日期
Float 存储浮点值
Boolean 存储布尔值PickleType存储为一个持久化的 Python 对象LargeBinary存储一个任意大的二进制数据
(4)数据库关系模型
(5)增删改查
1:插入记录
向数据库插入数据分为三个步骤:
创建 Python 对象
把它添加到会话
提交会话
>>> fromyourappimportUser
>>> me=User('admin','admin@example.com')
>>> db.session.add(me) 提交会话,但是还没有保存在数据库当中
>>> db.session.commit() commit()保存到数据库当中
2:删除记录(删除记录是十分类似的,使用 delete() 代替 add():)
>>> db.session.delete(me)
>>> db.session.commit()
3:查询记录(使用query进行查询在使用 all() 或者 first() 发起查询之前可以使用方法 filter() 来过滤记录。如果您想要用主键查询的话,也可以使用 get()。不存在则返回none)
>>> peter=User.query.filter_by(username='peter').first()
>>> peter.id
1
>>> peter.emailu'peter@example.org'
按某种规则对用户排序:
>>> User.query.order_by(User.username)[<User u'admin'>, <User u'guest'>, <User u'peter'>]
限制返回用户的数量:
>>> User.query.limit(1).all()[<User u'admin'>]
用主键查询用户:
>>> User.query.get(1)<User u'admin'>
3:在试图中进行查询
可以使用 get_or_404() 来代替 get(),使用 first_or_404() 来代替 first()。这样会抛出一个 404 错误,而不是返回 None:这样的话回非常的方便,但是前提希望已经设置了404页面
@app.route('/user/<username>')
def show_user(username):
user = User.query.filter_by(username=username).first_or_404()
return render_template('show_user.html', user=user)
4:删除数据库,创建数据库
如 create_all()与drop_all()(但是会把先前的数据库都清空)
所以跟新数据表的时候利用数据库迁移的操作进行(每当自己修改数据模型当中的主键或者内容的时候)
利用flask-migrate迁移数据库 https://www.jianshu.com/p/08143e2ede33
5:增加用户
user = User(name='----',password='---')
db.session.add(user)
db.session.commit()
(4)数据库分页(还没有用到,以后添加)
(5)选择数据表
__tablename__ = 'user'
网友评论