• python常用框架之一 Flask (1) 初识Flask


    ---恢复内容开始---

    Flask

    Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。

    Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现。

    比如可以用 Flask 扩展加入ORM、窗体验证工具,文件上传、身份验证等。Flask 没有默认使用的数据库,你可以选择 MySQL,也可以用 NoSQL。

    其 WSGI 工具箱采用 Werkzeug(路由模块),模板引擎则使用 Jinja2。这两个也是 Flask 框架的核心。

    一些Flask框架的基本操作

    #建立flask对象
    app = Flask(__name__)
     
    #使用flask路由器,指定网址和控制器
    @app.route('/')
    def index():
      return "hello world sjgbd kas "
     
    #给文章增加参数功能使用<变量名称>,路由方法要和路由定义的参数同步
    @app.route('/hello/<id>/<name>')
    def hello(id,name):
      print(type(id))
      return "hello world ,你的参数是 %s,%s" % (id,name)
    注意参数id和name默认为str类型,若要指定类型:

    @app.route('/hello/<int:id>')

    def hello(id):

      return 'hello %d' % id

     

    #使用重定向模块来进行跳转,要先导入redirect模块
    @app.route('/1')
    def reur1():
    return redirect('http://www.baidu.com')括号中填写的是需要跳转的路径网址
     
    #使用url_for方法来实现站内跳转,参数指定路由方法名称
    @app.route('/2')
    def reurl_in():
      return redirect(url_for('hello'))注意url_ffor 方法括号中写入的是路由方法名称,不用添加括号
     
    #使用jsonify模块来让网页直接显示json数据,methods方法是用发来指定发送方式
    @app.route('/json',methods=['POST'])
    def re_json():
      json_dict = {'id':10,'title':'flask应用','content':'flask格式化'}
    #使用jsonfy来将定义好的数据转换成json格式
      return jsonify(json_dict)
     
    捕获异常  errorhandler 装饰器
    #flask统一对状态码捕获异常,用来进行友好提示,提高用户体验
    @app.errorhandler(405)       
    def internal_server_error(e):
      return "这个接口不能被get请求到,只能post请求"
     
    #flask统一对状态码捕获异常,用来进行友好提示,提高用户体验
    @app.errorhandler(404)
    def internal_server_error(e):
      return "网页不存在或已被删除"
     
    请求钩子

    在客户端和服务器交互的过程中,有些准备工作或扫尾工作需要处理,

    比如: 在请求开始时,建立数据库连接; 在请求开始时,根据需求进行权限校验;

    在请求结束时,指定数据的交互格式;

    为了让每个视图函数避免编写重复功能的代码,Flask提供了通用设施的功能,即请求钩子。

    请求钩子是通过装饰器的形式实现,Flask支持如下四种请求钩子:

    #在第一次请求之前调用
    @app.before_first_request
    def before_first_request():
    print("这是第一次请求之前调用的方法")

    #在每一次请求之前调用
    @app.before_request
    def before_request():
    print("每一次请求之前调用这个")

    #在请求之后调用的方法,必须传响应参数,然后将响应内容返回
    @app.after_request
    def after_request(response):
    print("在请求之后调用这个方法")
    return response

    #在请求之后调用服务器出现的错误信息
    @app.teardown_request
    def teardown_request(e):
    print("打印服务器出现的错误是 %s " % str(e))
     
     
    程序加载配置的三种方式:
    1#从配置文件里来加载配置
    # app.config.from_pyfile('config.ini')
    创建配置文件 config.ini,在配置文件中添加配置
    运行测试,在代码保存后直接保存 会自动重启服务

    2#从环境变量中来加载配置
    # app.config.from_envvar('app_config')
    这是在环境变量中设置配置通过代码来加载配置

    3#从配置对象来加载配置、
    这个是通过写代码,创建一个类来配置对象
    #建立一个配置类
    class Config(object):
      DEBUG = True
      JSON_AS_ASCII = False
    # app.config.from_object(Config)
     
     
     

    ---恢复内容结束---

  • 相关阅读:
    工作中会用到的知识点(二)
    canvas 绘制图形
    CSS 清除浮动的方法
    倒计时
    JavaScript 对象
    推荐一款分页插件
    HTML5 Video标签
    idea lua插件设置Lua SDK
    Springboot访问 图片image css js资源文件
    nginx基本配置与参数说明
  • 原文地址:https://www.cnblogs.com/ssjz12/p/10144607.html
Copyright © 2020-2023  润新知