登录

javascript - 新手求指导flask

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

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

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

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

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

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

# JavaScript
迷茫迷茫2153 天前464 次浏览

全部回复(5) 我要回复

  • 黄舟

    黄舟2017-04-11 13:06:13

    @app.route('//m.sbmmt.com/m/')
    def index():
        return render_template('hello.html')
    

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

    回复
    0
  • PHP中文网

    PHP中文网2017-04-11 13:06:13

    from flask import jsonify
    
    @app.route('//m.sbmmt.com/m/')
    def index():
        res = {'foo':'bar'}
        return jsonify(res)
        # return jsonify(foo='bar')  # 这样也可以 
    

    回复
    0
  • PHPzhong

    PHPzhong2017-04-11 13:06:13

    return RAW字符流 或 Response对象

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

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

    html = TplEngine.display("index.html", *globals(), *locals())
    return html
    @app.route('//m.sbmmt.com/m/')
    def index(response):
        // 使用response context
        response.headers['Content-Type'] = 'application/json;charset=utf8'
        res = {'foo':'bar'}
        return jsonify(res)

    回复
    0
  • PHP中文网

    PHP中文网2017-04-11 13:06:13

        @app.route('//m.sbmmt.com/m/')
        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>```

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-11 13:06:13

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

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

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

    回复
    0
  • 取消回复发送