zoukankan      html  css  js  c++  java
  • Flask 框架的功能 以及 重点。

    Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL 

    Flask python三大web框架之一,比之其他两大框架djangotornado而言,它更加的轻量化,开发效率更高,是入门web框架的首选。

    Flask-Admin:简单而可扩展的管理接口的框架

     

    Flask有两大核心:WerkzeugJinja2

       - Werkzeug实现路由、调试和Web服务器网关接口

       - Jinja2实现了模板。

    Werkzeug是一个遵循WSGI协议的python函数库

       - 其内部实现了很多Web框架底层的东西,比如requestresponse对象;

       - WSGI规范的兼容;支持Unicode

       - 支持基本的会话管理和签名Cookie

       - 集成URL请求路由等。

    Werkzeug库的 routing 模块负责实现 URL 解析。不同的 URL 对应不同的视图函数,routing模块会对请求信息的URL进行解析,匹配到URL对应的视图函数,执行该函数以此生成一个响应信息。

    routing模块内部有:

    Rule

       用来构造不同的URL模式的对象,路由URL规则

    安装flask

    pip install Flask

    列出pip已经安装好的模块

    pip freeze

    三种导入配置文件的方式:

    # 配置对象,里面定义需要给 APP 添加的一系列配置

    class Config(object):

    DEBUG = True

    # 从配置对象中加载配置

    app.config.from_object(Config)

    # 从配置文件中加载配置

    app.config.from_pyfile('config.ini')

    #由环境变量里面来加载配置

    app.config.from_envvar('app_config')

    路由配置,指定methods方法,返回json数据

    @app.route('/demo4',methods=['GET', 'POST'])

    def demo4():

        json_dict = {

            "user_id": 10,

            "user_name": "laowang"

        }

    return jsonify(json_dict)

    统一捕获异常

    #统一捕获异常

    @app.errorhandler(500)

    def internal_server_error(e):

    return '服务器搬家了'

    钩子的四大方法

    # 在第一次请求之前调用,可以在此方法内部做一些初始化操作

    @app.before_first_request

    def before_first_request():

        print("before_first_request")

    # 在每一次请求之前调用,这时候已经有请求了,可能在这个方法里面做请求的校验

    # 如果请求的校验不成功,可以直接在此方法中进行响应,直接return之后那么就不会执行视图函数

    @app.before_request

    def before_request():

        print("before_request")

    # 在执行完视图函数之后会调用,并且会把视图函数所生成的响应传入,可以在此方法中对响应做最后一步统一的处理

    @app.after_request

    def after_request(response):

        print("after_request")

        return response

    # 请每一次请求之后都会调用,会接受一个参数,参数是服务器出现的错误信息

    @app.teardown_request

    def teardown_request(e):

        print("teardown_request")

    调试接口的两种方法

    1 编写python脚本进行调试

    2 使用postman软件进行调试

    虚拟环境概念

    为了给项目提供独立的安装环境,防止多项目依赖冲突

    虚拟环境安装

    pip install virtualenv

    进入项目安装虚拟目录

    virtualenv venv

    进入命令目录

    cd ./venv/Scripts

    激活虚拟环境

    activate

    离开虚拟环境

    deactivate

     

  • 相关阅读:
    HDU 5486 Difference of Clustering 图论
    HDU 5481 Desiderium 动态规划
    hdu 5480 Conturbatio 线段树 单点更新,区间查询最小值
    HDU 5478 Can you find it 随机化 数学
    HDU 5477 A Sweet Journey 水题
    HDU 5476 Explore Track of Point 数学平几
    HDU 5475 An easy problem 线段树
    ZOJ 3829 Known Notation 贪心
    ZOJ 3827 Information Entropy 水题
    zoj 3823 Excavator Contest 构造
  • 原文地址:https://www.cnblogs.com/lyp0626/p/10145353.html
Copyright © 2011-2022 走看看