• 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
  • 相关阅读:
    【大数据】中文词频统计
    【大数据】复合数据类型,英文词频统计
    Hadoop综合大作业
    分布式文件系统HDFS练习
    安装关系型数据库MySQL 安装大数据处理框架Hadoop
    爬取全部的校园新闻
    作业六|获取一篇新闻的全部信息
    理解爬虫原理
    作业——04 中文词频统计
    复合数据类型,英文词频统计
  • 原文地址:https://www.cnblogs.com/tfzz/p/11837482.html
Copyright © 2020-2023  润新知