前文中,已经简要的介绍了一下flask的参数传递和ORM,那么本节我们讲就flask服务的响应方式进行探讨,按照我们一般请求响应通常出现的场景,一般的响应无非就是返回字符串、json、页面、重定向以及文件下载,那么在flask中,这几种形式都对应如何进行实现呢?
![f1c9b37639aecda5ac363c5509073077.png](https://i-blog.csdnimg.cn/blog_migrate/8a913e162a8c8e3c8ebc27a4b0683206.jpeg)
- 直接返回文本内容
@app.route('/')def home(): return 'first_flask'
是不是很简单!
- 返回json
@app.route('/flask_json')def flask_json(): return jsonify(['a',2])
- 返回页面
- 在flask中,如果要返回页面的话,存在几种方式,一种就是直接返回符合html格式要求的html串,第二种就是通过模板技术结合请求的处理结果进行页面渲染,第一种方式在这里就不做介绍了,第二种操作如下:
@app.route('/index')def index(): return render_template('index.html')
或者
@app.route('/user/') def user(name): return render_template('user.html', name=name) #带有需要渲染的数据
目前,flask中使用的模板引擎是Jinja2,它 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言。 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全。
- 重定向
@app.route('/reback')def reback(): return redirect('/index')
- 进行文件输出
@app.route('/flask_file')def flask_file(): filepath=os.path.join(os.path.dirname(os.path.abspath(__file__)),'file') filename='1.png'#Content-Type: image/png file=os.path.join(filepath,filename) return send_file(file)
以上就是在flask框架下几种最最基本的响应方式的简单实现,应该每一种都比较重要,而且关于页面渲染方面还有一大通重要的知识点,这里只是抛砖引玉,做一些方向性的引导,起码要问度娘也得要知道问什么不是!