素材牛VIP会员
新手求指导flask
 阿***阿  分类:Python  人气:962  回帖:5  发布于6年前 收藏

本人以前是做.net开发的,现在业余时间学了下python的flask,发现教程上说的前端都用Jinja2模板引擎,感觉一点都不习惯,我前端习惯用AngularJs开发,现在不都是前后端分离的吗?
教程上用的Jinja2模板,把路由@app.route('/')映射到index.html就是

@app.route('/')
def index():
    render_template('index.html')

index.html里面就1行代码'<h1>Hello!!!</h1>'

如果我不用这模板引擎,而用一个完整的html页面(包括css、js等),该怎么做啊?

@app.route('/')
def index():
    return #这里怎么写?

另外再请教下,好像web.py、tornado也是用模板引擎的,感觉这种形式前后端耦合太紧了,有什么web框架不是用模板的吗?
谢谢!!!

讨论这个帖子(5)垃圾回帖将一律封号处理……

Lv4 码徒
阵***香 交互设计师 6年前#1

render_template 使用的是 jinja 模板
css 需要放在 static 目录下

在html中 {{ url_for('static', 'index.css') }}

如果不用render_template
那就直接 返回字符串

Lv3 码奴
ze***91 站长 6年前#2

return RAW字符流 或 Response对象

可以返回 html代码, 也可以返回 json字符串等

模版的话, 逻辑也是先模板引擎解析得到字符串流, 然后返回

html = TplEngine.display("index.html", *globals(), *locals())
return html
@app.route('/')
def index(response):
    // 使用response context
    response.headers['Content-Type'] = 'application/json;charset=utf8'
    res = {'foo':'bar'}
    return jsonify(res)
Lv2 入门
踏***C UI设计师 6年前#3
    @app.route('/')
    def index():
        return ```
        <!DOCTYPE html>
        <html lang="en">
            <head>
                <title>!!!</title>
                <meta charset="utf-8">
                <style>
                    * {
                        margin: 0;
                        padding: 0;
                    }
                </style>
            </head>
            <body>
                <p>就这样</p>
            </body>
        </html>```
Lv3 码奴
Go***ng 职业无 6年前#4
@app.route('/')
def index():
    return render_template('hello.html')

直接这样即可,但要注意的是要把 hello.html 放在根目录的templates文件夹下,Flask 会在templates文件夹内寻找模板

Lv6 码匠
bi***am 技术总监 6年前#5
from flask import jsonify

@app.route('/')
def index():
    res = {'foo':'bar'}
    return jsonify(res)
    # return jsonify(foo='bar')  # 这样也可以 
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取