zoukankan      html  css  js  c++  java
  • Flask框架(二)

    flask框架(二)

    之前学习的Django有必备三板斧:render,HttpResponse,redirect,JsonResponse

    在flask也有,但是有些不同

    一、Flask4剑客

    1.直接返回字符串(return 后面加字符串)

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

    2.返回html页面,渲染页面(render_template)

    from flask import Flask,render_template
    app=Flask(__name__)
    
    @app.route('/')
    def  index():
        #返回,渲染html
        name_dict={"name":"jason-gdx"}
        return render_template("index.html",name="jasongdx",name_dict=name_dict)  #返回index.html对应数据
    
    if __name__ == '__main__':
        app.run()
    

    注意:render_template()会去flask根目录下的templates里面寻找文件,所以给的参数路径时相对路径。

    3.跳转页面(redirect)

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

    4.返回json数据(jsonify)

    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)
    
    if __name__ == '__main__':
        app.run()
    

    二、flask配置文件的4种方式

    from  flask import Flask
    app=Flask(__name__)
    #第一种,这种方式只能配置两种(debug,secret_key)
    app.debug=True
    app.secret_key="123123"
    #第二种,以字典的形式
    app.config['DEBUG']=True
    #第三种,以文件的形式,导入配置好的文件
    app.config.from_pyfile("settings.py")
    
    #第四种以类的形式(推荐)
    app.config.from_object('settings.DevelopmentConfig')
    
    @app.route('/login')
    def login():
        print(123)
        return "ojbk_login"
    
    if __name__ == '__main__':
        app.run()
    

    settings.py

    class Config(object):
        DEBUG = False
        TESTING = False
        DATABASE_URI = 'sqlite://:memory:'
    
    
    class ProductionConfig(Config):
        DATABASE_URI = 'mysql://user@localhost/foo'
    
    
    class DevelopmentConfig(Config):
        DEBUG = True
    
    
    class TestingConfig(Config):
        TESTING = True
    

    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,
        }
    
  • 相关阅读:
    安装mysql到服务器的linux环境下
    Junit
    shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select
    JavaScript组合继承的一点思考
    JavaScript-2.内置对象---简单脚本之弹出对话框显示当前时间 ---ShinePans
    Python之美[从菜鸟到高手]--2+2=5
    Flex中配置FusionCharts
    [WHY]Hello, Worktile~
    数据库学习之中的一个: 在 Oracle sql developer上执行SQL必知必会脚本
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/chmily/p/12163429.html
Copyright © 2011-2022 走看看