1.flask-blueprint
作用:用于管理路由
# 安装插件
pip install flask-blueprint
# 实例化配置
# 在views.py自己的视图逻辑处理中
from falsk import Blueprint
blue = Blueprint('blue',__name__) # blue可以用于URL反向解析
# 在__init__.py(自己创建app中)
from flask import Flask
from App.views import blue
app = Flask(__name__)
app.register_blueprint(blueprint=blue)
2.flask-script
作用:暂时用于管理项目启动
# 安装
pip install Flask-Script
# 实例化与配置
# 在__init__.py自己的文件中
from flask import Flask
def createApp():
app = Flask(__name__)
return app
# 在app.py.py中
from flask_script import Manager
from App import createApp
app = createApp()
manager = Manager(app)
if __name__="__main__":
manager.run()
一些指令:python app.py
-r : 重新加载
-d : 开启debug调试模式
-h : 设置主机号
-p : 设置端口号
3.flask-session
作用:可以让session持久化存储
使用redis数据库,先要开启redis数据库
# 安装
pip install Flask-Session
# 实例化配置
# 在__init__.py中
form flask_session import Session
Session(app)
app.config['SESSION_TYPE'] = 'redis' # 必选
app.config['SESSION_COOKIE_NAME'] = 'hello' # 设置session的别名hello,可选项
app.config['SESSION_COOKIE_LIFETIME'] = 60 # 设置session的过期时间60s,可选项
4.flask-sqlalchemy
作用:用来创建数据库相关的
# 安装插件
pip install Flask-SQLAlchemy
# 实例化配置
# 在自己创建的models中
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# 在__init__.py中
from App.models import db
# 三个///表示相对于自己路径,四个////表示绝对路径
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///mysqlete'
db.init_app(app)
# 用法
# 创建数据库和表单
db.create_all() # 会创建对应的数据库和表单
from App.models import db
# 保存数据
db.session.add(user)
db.session.commit() # 将数据上传至数据库
# 获取所有数据
users = User.query.all()
5.flask-bootstrap插件
# 安装
pip install flask-bootstrap
# 实例化
boostrap = Bootstrap()
bootstrap.init_app(app)
# 使用,在模版中可以继承
{% extends 'bootstrap/base.html' %}
6.flask-debugtoolbar
# 安装
pip install flask-debugtoobar
# 实例化,配置中,DEBUG要开启
toolbar = DebugToolbarExtension()
toolbar.init_app(app)
7.flask-caching
# 安装
pip install Flask-Caching
# 实例化配置,使用redis进行存储
cache = Cache(config={'CACHE_TYPE':'redis','CACHE_KEY_PREFIX':'python(Flask)'})
cache.init_app(app)
# 使用
@cache.cached(timeout=30) # 直接缓存视图
cache.set(key,value,timeout=30) # 部分缓存
cache.clear() # 清空缓存
8.flask-migrate
# 安装
pip install flask-migrate
# 实例化配置
migrate = Migrate()
migrate.init_app(app,db)
manager.add_command('db',MigrateCommand)
# 使用
python manager.py db init
python manager.py db migrate
python manager.py db upgrade
9.flask-restful
主要用于管理api接口相关
# 安装:
pip install flask-restful
# 实例化配置
api = Api()
api.init_app(app)
# 使用
class HelloResource(Resource):
def get(self):
return {'message':'hello world'}
api.add_resource(HelloResource,'/hello/','hello') # 后面的hello是端点
# 自定义字段的使用
# 响应格式定制
data_fields = {
'name':fields.String,
'score':fields.Integer,
}
response_fields = {
'status':fields.Integer,
'message':fields.String,
'data':fields.Nested(data_fields)
}
class Myresource(Resource):
@marshal_with(response_fields)
def get(self):
students = Student.query.all()
response_data = {
'status':200,
'message':'消息回复成功',
'data':students
}
# 请求格式定制,get和post请求都是一样的方法
parser = reqparser.RequestParser()
parser.add_args('name',type=str,required=True,help='请输入内容'
class HelloResource(Resource):
def get(self):
parse = parser.parse_args()
name = parse.get('name')
return {'message':'欢迎你{}来到'.formate{name}}
10flask-mail 插件
# 安装:
pip install flask-mail
# 实例化配置
mail = Mail()
mail.init_app(app)
MAIL_USERNAME = 'your_example@mail.com'
MAIL_PASSWORD = 'your password' # 授权码
MAIL_SERVER = 'smtp.163.com'
# 使用
html = render_template('home.html',name=user.name)
message = Message(subject='主题内容',html=html,sender='your@mail.com',recipients=[user.email])
mail.send(message)
网友评论