天天看點

Flask 學習-90.Flask-RESTX 傳回 HTML 内容

前言

Flask-RESTX 架構預設傳回的是application/json格式,使用render_template()傳回html内容遇到了一些問題

遇到的問題

需要使用render_template() 傳回HTML内容

from flask_restx import Resource, Namespace, reqparse
from flask import make_response

api = Namespace('render/html')

@api.route('')
class RenderHTML(Resource):

    def get(self):
        """渲染html"""
       
        return render_template('hello.html')      

模闆内容

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>demo</title>
</head>
<body>
<h1>hello world</h1>
</body>
</html>      

通路後會以字元串格式傳回

Flask 學習-90.Flask-RESTX 傳回 HTML 内容

預設以json 格式響應

Flask 學習-90.Flask-RESTX 傳回 HTML 内容

make_response 自定義響應

使用make_response() 自定義響應内容

@api.route('')
class RenderHTML(Resource):

    def get(self):
        """渲染html"""
        res = render_template('hello.html')
        response = make_response(res)
        return response      

這樣 html 就可以正常渲染了.