使用Flask-Session进行存储,将数据保存在redis中
安装Redis和session
pip install flask-session
pip install redis
配置Redis
from flask import Flask
from flask_script import Manager
from flask_session import Session
from app.views import blue
import redis
app = Flask(__name__)
app.register_blueprint(blue, url_prefix='/app')
app.secret_key = 'qwertyuiopasdfghjklzxcvbnm1234567890'
# 配置session
app.config['SESSION_TYPE'] = 'redis'
app.config['SESSION_REDIS'] = redis.Redis(host='127.0.0.1', port=6379)
# 初始化session和app对象
se = Session()
se.init_app(app)
manage = Manager(app)
if __name__ == '__main__':
# app.run()
manage.run()
模板
静态文件的解析方式
第一种
<link rel="stylesheet" href="/static/css/style.css">
第二种
<link rel="stylesheet" href="{{ url_for('static', filename='css/style.css') }}">
继承父模板且添加新的内容
{% block js %}
{{ super() }}
<script>xxxxx</script>
{% endblock %}
Django - forloop.counter
Flask - loop.index
宏定义
<!--宏定义-->
{% from 'functions.html' import say %}
{% from 'functions.html' import good_list %}
{{ say() }}
{{ good_list('1', '橙子', '5', '500') }}
{{ good_list('2', '柠檬', '8', '300') }}
functions.html
<!--宏定义-->
{% macro say() %}
<P>你今天真好看</P>
{% endmacro %}
{% macro good_list(id, name, price, nums) %}
<P>编号:{{ id }} , 名称: {{ name }} , 价格: {{ price }} , 数量: {{ nums }}</P>
{% endmacro %}
过滤器
srtiptags - 删除文本中的样式
trim - 删除文本前后的空格
{{ c2 | safe }}
<br>
{{ c3 | striptags }}
<br>
{{ c2 | length }}
<br>
{{ c3 | trim | length }}
{% if nums == 10 %}
{{ nums }}
{% endif %}
模型
安装
pip install flask-sqlalchemy
定义模型
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class Student(db.Model):
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
s_name = db.Column(db.String(80), unique=True, nullable=False)
s_age = db.Column(db.Integer, default=18)
__tablename__ = 'stu'
配置
dialect+driver://username:password@host:port/database
# 配置数据库
# dialect+driver://username:password@host:port/database
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@127.0.0.1:3306/flask'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
初始化:
# 初始化db和app对象
db.init_app(app)
创建:db.create_all()
@blue.route('/create_db/')
def create_db():
db.create_all()
return '创建数据库成功'
删除:db.drop_all()
@blue.route('/drop_db/')
def drop_db():
db.drop_all()
return '删除数据库成功'
网友评论