• python三大框架之一flask应用


    创建一个python项目

    第一步:打开pytharm

    第二步:创建pure python 类型的项目

    第三步:创建项目完成之后选择之前创建的py3_flack 作为虚拟环境

    第四步:路径可以通过在制定虚拟环境下,输入which   python 获得

    例如:

    新建文件:helloworld.py

    导入Flask类:   from flask import Flask

    Flask函数接收一个参数__name__ ,它会指向程序所在的包:     app = Flask(__name__)

    装饰器的作用是将路由映射到视图函数 index:

    @app.route("/")
    def index():
      return "hello"
     
    Flask应用程序实例的run方法启动WEB服务器
    if __name__ == "__main__":
    #port修改端口号,flask默认端口号是5000,debug测试改变,默认Flast
    app.run(debug=True,port=5001)
     
    路由基本定义
     
     
    (1)制定路由地址
    #使用flask路由器,指定网址和控制器
    #制定访问路径为  /
    @app.route("/")
    def index():
      return "hello"
     
     
    (2)有时我们需要将同一类url映射到同一个视图函数上,所以我们需要给路由传参
    #给网址增加参数功能使用<变量名称>,路由方法要和 路由器定义的参数同步
     
    【1】传递单个参数
    @app.route("/hello/<id>")
    def hello(id):
      return "你好,你的参数是: %s" % id
     
    【2】传递多个参数
    @app.route("/hello/<id>/<name>")
    def hello(id,name):
      return "你好,你的参数是: %s,%s" % (id,name)
     
    【3】 路由传递的参数默认当作str处理,也可以设定参数的类型
    @app.route("/hello/<int:id>")
    def hello(id):
      return "你好,你的参数是: %s" % id
     
    小总结:
    因为尖括号中的内容是动态的,所以尖括号中 在这里指定参数的类型,实际上是int代表integerConverter 去处理url传递的参数
     
     视图常用逻辑
     
    1.返回json
     在使用Flask写接口时需要给客户端返回一个json数据,在Flask中可以指接使用jsonify生成一个JSON响应
     
    例:
    #使用jsonify模块来让网址直接显示json数据
    @app.route("/json")
    def re_json():
    #定义好数据格式
      json_dict = {'id':10,'title':'flask的应用','countent':'flask的json格式化'}
    #使用jsonify将定义好的数据转换成json格式,并返回给前端
      return jsonify(json_dict)
     
     在使用jsonify模块时,显示内容可能出现编码问题解决方案如下:
     
    (1)在代码中,插入数据
    #解决中文乱码问题,
    app.config['JSON_AS_ASCII'] = False
    #开启debug模式
    app.config['DEBUE'] = True
     
    (2)从配置文件里面加载配置
    步骤:
    1.在当前文件下创建一个文件,例如:config.ini
    2.在新文件中写入   DEBUG = True      ,JSON_AS_ASCII = False  #代码必须大写
    3.在写代码的文件中写入 : app.config.from_pyfile('config.ini')
    小建议:
    不推荐直接使用json.dumps转成JSON字符串返回,因为返回的数据要符合HTTP协议规范。
     
     (3) 建立一个配置类从配置中加载配置
    # class Config(object):
    # DEBUG = True
    # TSON_AS_ASCII = False
    app.config.from_object(Config)
    (4)
    从环境变量中加载
    app.config.from_envvar("app_config")
    2.重定向
     
     重定向可以:
    自己的视图函数;可以直接填写自己的url路径;也可以使用url_for生成指定试图所对应的url
     
    例:
    (1)
    #直接填写自己的url路径
    @app.route('/123')
    def reurl():
    return redirect("http://music.163.com/")
     
     (2)自己的视图函数
     
    @app.route('/demo')
    def demo():
    return 'demo'
     
     
    (3)使用url_for生成指定试图所对应的url
    @app.route('/demo')
    def demo():
    return redirect(url("demo1"),user_id = 100)
     
     异常捕获
    统一对状态码进行捕获
    @app.errorhandler(405)
    def internal_sever_error(e):
    return "这个接口不能用get请求,只能用post请求"
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    myEclipse环境下配置springMvc项目,进行简单的请求
    自记录:git如何上传文档到git@osc
    java UDP网路编程
    Dom解析xml源代码
    SAX解析XML文件实例代码
    javaFile循环列出指定目录下的所有文件(源代码)
    javaIO流实现读写txt文件
    Java类之间的关联关系(转载)
    Python基本语法
    Python3.4入门之ifelse错误解决方案
  • 原文地址:https://www.cnblogs.com/chengdongzi/p/10144176.html
Copyright © 2020-2023  润新知