美文网首页
flask几个插件的使用

flask几个插件的使用

作者: Challis | 来源:发表于2018-10-09 19:39 被阅读0次

    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)
    
    

    相关文章

      网友评论

          本文标题:flask几个插件的使用

          本文链接:https://www.haomeiwen.com/subject/pzyyaftx.html