flask几个插件的使用

2018-10-09  本文已影响0人  Challis

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)

上一篇下一篇

猜你喜欢

热点阅读