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,
}