zoukankan      html  css  js  c++  java
  • Flask:初识;简单使用;Werkzeug简介;Flask四剑客;配置文件

    一 Flask初识

    参考链接:https://www.cnblogs.com/xiaoyuanqujing/articles/11643999.html#_label0

    1.什么是Flask:

      flask和django同步web框架,但flask是一个短小精悍的轻量级框架,它只包含基本配置默认依赖2个外部库默认依赖于2个外部库: Jinja2 模板引擎和 WSGI工具集--Werkzeug工具包。

    flask默认IP端口为:http://127.0.0.1:5000/

    2.安装Flask:

    cmd窗口

    pip3 install flask

    二 Flask简单使用(fbv为例)

    1.主文件app.py代码

    # 1.导入模块
    from flask import Flask
    # 2.产生flsak对象
    app = Flask(__name__) # __name__这个特殊的参数:Python会根据所处的模块来赋予__name__变量相应的值,对于我们的程序来说(app.py),这个值为app。
    
    #2. 路由和对应函数
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    #3.运行程序
    if __name__ == '__main__':
        app.run()

    三 Werkzeug简介

    建议链接地址:https://www.cnblogs.com/xiaoyuanqujing/articles/11643999.html#_label0

     四 Flask四剑客

    1.返回字符串:return '字符串'

    from flask import Flask
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
    
       #1直接返回字符串
        return  "ok1"
    if __name__ == '__main__':
        app.run()
    返回字符串

    2.返回html页面: return render_template("html文件",k1=参数1,k2=参数2)

    # 前端

    # 后端
    from flask import Flask,render_template
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
        #返回html
        name_dict={"name":"jason-gdx"}
       # 返回html页面,并携带参数时参数格式要为:k=v
        return render_template("index.html",name="jason-gdx",name_dict=name_dict)

    # 前端templates文件夹中html文件

    注意:传入前端的数据如字典列表注意取值方式和python中相似

    #1.for循环字典
    {% for k,v in user_dict.items() %}
    
    #2.
    {{k}}
    #3.字典取值
    {{v.name}}
    {{v['name']}}
    {{v.get('name')}}
    
    #4.列表
    {{ls[0]}}
    {{ls.0}}

    #3.if判断
            {% if name %}
              <h1>Hello {{ name }}!</h1>
            {% else %}
              <h1>Hello World!</h1>
            {% endif %}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    {{info}}
    {{info.name}}
    {{info['name']}}
    {{info.get('name')}}
    
    </body>
    </html>

    3.路由跳转:return redirect("路由地址")

    from flask import Flask,redirect
    
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
        # 跳转页面
        return redirect("/login")

    4.返回json字符串

    from flask import Flask,jsonify
    app=Flask(__name__)
    
    
    @app.route('/')
    def  index():
    
        #返回json数据
        name_dict = [{'name': "jason-gdx"},{'name': "tank-sb"}]
        return  jsonify(name_dict)
    返回json数据

    五 配置文件

    flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:

     {
            'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
            'TESTING':                              False,                          是否开启测试模式
            'PROPAGATE_EXCEPTIONS':                 None,                          
            'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
            'SECRET_KEY':                           None,
            'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
            'USE_X_SENDFILE':                       False,
            'LOGGER_NAME':                          None,
            'LOGGER_HANDLER_POLICY':               'always',
            'SERVER_NAME':                          None,
            'APPLICATION_ROOT':                     None,
            'SESSION_COOKIE_NAME':                  'session',
            'SESSION_COOKIE_DOMAIN':                None,
            'SESSION_COOKIE_PATH':                  None,
            'SESSION_COOKIE_HTTPONLY':              True,
            'SESSION_COOKIE_SECURE':                False,
            'SESSION_REFRESH_EACH_REQUEST':         True,
            'MAX_CONTENT_LENGTH':                   None,
            'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
            'TRAP_BAD_REQUEST_ERRORS':              False,
            'TRAP_HTTP_EXCEPTIONS':                 False,
            'EXPLAIN_TEMPLATE_LOADING':             False,
            'PREFERRED_URL_SCHEME':                 'http',
            'JSON_AS_ASCII':                        True,
            'JSON_SORT_KEYS':                       True,
            'JSONIFY_PRETTYPRINT_REGULAR':          True,
            'JSONIFY_MIMETYPE':                     'application/json',
            'TEMPLATES_AUTO_RELOAD':                None,
        }

    详解DEBUG模式和四种配置使用方式

    详情链接:https://www.cnblogs.com/xiaoyuanqujing/articles/11643999.html

    1.DEBUG模式2个作用

    1. flask代码中如果出现了异常,我们在浏览器中不会提示具体的错误信息,开启debug模式后会把具体的错误信息发送到浏览器上。

    2. flask代码如果被修改了,必须要重启项目修改的代码才会有效,开启debug模式后我们修改了代码只要ctrl+s我们的flask项目就会自动重新加载,不需要手动加载整个网站

    开启示例(多种方式)

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello():
        a = [1,2,3,4]
        print(a[4])
    
        return "hello"
    
    if __name__ == '__main__':
        app.run(debug=True)
    V开启debug示例之一

    2.种配置使用方式(以debug为例)

    from  flask import Flask
    app=Flask(__name__)
    
    #配置文件1,这中方式只能配置两种
    app.debug=True
    app.secret_key="123123"
    
    #第二种,以字典的形式
    app.config['DEBUG']=True
    
    #第三种,以文件的形式:app.config.from_pyfile("文件名")
    app.config.from_pyfile("settings.py")
    
    #settings.py文件代码
    DEBUG = True
    
    #第四种以类的形式(推荐):app.config.from_object('类的路径')
    app.config.from_object('settings.DevelopmentConfig')
    
    #settings.py文件中类
    class DevelopmentConfig(Config):
        DEBUG = True
  • 相关阅读:
    SpringMVC中静态获取request对象 Spring中获取 HttpServletRequest对象【转载】
    springcloud 的loadbalancer 轮询算法切换方法 2021.4.3
    springboot项目启动增加图标
    rabbitmq 端口作用以及修改方法
    centos8 安装rabbitmq
    springcloud config client Value获取不到信息的问题的处理方法
    springcloud config配置git作为数据源然后启动报错 If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.
    Sublime Text的列模式如何操作
    centos8 安装redis
    jQuery简单的Ajax调用
  • 原文地址:https://www.cnblogs.com/tfzz/p/11837482.html
Copyright © 2011-2022 走看看