之前学习的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, }