快乐的鲸鱼

Flask 速记

2016/03/06

重定向

导入:from flask import redirect

使用:redirect(url)

1
2
3
4
5
6
7
8
from flask import Flask, render_template, session, redirect, url_for
@app.route('/', methods=['GET', 'POST'])
def index():
form = NameForm()
if form.validate_on_submit():
session['name'] = form.name.data
return redirect(url_for('index'))
return render_template('index.html', form=form, name=session.get('name'))

Flash消息

导入:from import flash

使用:flash(string)and{ % for message in get_flashed_messages() %}

1
2
3
4
5
6
7
8
9
10
11
from flask import Flask, render_template, session, redirect, url_for, flash
@app.route('/', methods=['GET', 'POST'])
def index():
form = NameForm()
if form.validate_on_submit():
old_name = session.get('name')
if old_name is not None and old_name != form.name.data:
flash('Looks like you have changed your name!')
session['name'] = form.name.data
return redirect(url_for('index'))
return render_template('index.html', form = form, name = session.get('name'))
1
2
3
4
5
6
7
8
{% block content %} <div class="container">
{% for message in get_flashed_messages() %} <div class="alert alert-warning">
<button type="button" class="close" data-dismiss="alert">&times;</button>
{{ message }}
</div>
{% endfor %}
{% block page_content %}{% endblock %} </div>
{% endblock %}

使用Flask-Migrate实现数据库迁移

安装:pip install flask-migrate

配置:

1
2
3
4
from flask.ext.migrate import Migrate, MigrateCommand 
# ...
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
  1. 第一次使用的时候需要初始化迁移仓库。python manage.py db init
  2. 创建迁移脚本。python manage.py db migrate -m "migration message"
  3. 更新数据库。python manage.py db upgrade

使用SQLAlchemy连接MySQL

安装:pip install Flask-SQLAlchemy mysqlclient

配置:在配置文件中添加

1
2
SQLALCHEMY_DATABASE_URI = 'mysql://username:password@hostname/databasename'
# mysql相关的连接参数需要替换好

完成下面的初始化就可以使用了。

1
2
3
app = Flask(__name__)
db = SQLAlchemy()
db.init_app(app)
CATALOG
  1. 1. 重定向
  2. 2. Flash消息
  3. 3. 使用Flask-Migrate实现数据库迁移
  4. 4. 使用SQLAlchemy连接MySQL