zoukankan      html  css  js  c++  java
  • 转:flask之jinja2模板查找路径及关键字传参

    转自:https://www.cnblogs.com/qingbaobei7370/p/11330809.html

    一、Flask渲染Jinja模板

    • jinja2模板介绍和查找路径

      要渲染一个模板,通过render_template方法即可

      ①默认路径 

    复制代码
    from flask import Flask,render_template
    
    #指定templates路径
    app = Flask(__name__)
    
    
    @app.route('/')
    def index():
        return render_template('index.html')if __name__ == '__main__':
        app.run(host='127.0.0.1',port=5000,debug=True)
    复制代码

      ②指定路径 

      如果想更改模板文件地址,应该在创建app的时候,给Flask传递一个关键字参数template_folder,指定具体的路径

    复制代码
    from flask import Flask,render_template
    
    #指定templates路径
    app = Flask(__name__,template_folder=r'D:untitledflask_env	emplates')
    
    @app.route('/')
    #@app.route,是一个装饰器
    #@app.route('/')就是将url中的/映射到hello_world这个视图函数上面
    def index():
        return render_template('index.html')
    
    @app.route('/huashu/')
    def huashu():
        return render_template('posts/huashu.html')
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1',port=5000,debug=True)
    复制代码
    • jinja2模板传参及其技巧

      ①单个关键字传参,代码如下:

      --python--

    复制代码
    from flask import Flask,render_template
    
    #指定templates路径
    app = Flask(__name__,template_folder=r'D:untitledflask_env	emplates')
    
    #传递单个参数
    @app.route('/lvzhi/')
    def lvzhi():
        return render_template('posts/lvzhi.html',name='绿植')
    
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1',port=5000,debug=True)
    复制代码

      --HTML-- 

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>网红绿植</title>
    </head>
    <body>
        <h1>网红绿植</h1>
        花样介绍
        <p>{{name}}</p>
    
    </body>
    </html>
    复制代码

      ②多个关键字传参,代码如下:

      --python--

    复制代码
    from flask import Flask,render_template
    
    #指定templates路径
    app = Flask(__name__,template_folder=r'D:untitledflask_env	emplates')
    
    @app.route('/')
    #@app.route,是一个装饰器
    #@app.route('/')就是将url中的/映射到hello_world这个视图函数上面
    def index():
        return render_template('index.html')
    
    @app.route('/huashu/')
    #传递多个参数
    def huashu():
        context={
            'name':'鲜花',
            'price':'¥215',
            'describe':{
                'variety1':'玫瑰',
                'variety2': '百合'
            }
        }
        return render_template('posts/huashu.html',**context)
    
    #传递单个参数
    @app.route('/lvzhi/')
    def lvzhi():
        return render_template('posts/lvzhi.html',name='绿植')
    
    if __name__ == '__main__':
        app.run(host='127.0.0.1',port=5000,debug=True)
    复制代码

      --HTML-- 

    复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>鲜花超市</title>
    </head>
    <body>
        <h1>鲜花超市</h1>
        花样介绍
        <p>{{name}}</p>
        <p>{{price}}</p>
        <p>{{describe.variety1}}</p>
        <p>{{describe['variety2']}}</p>
    
    </body>
    </html>
    复制代码
  • 相关阅读:
    【统计学】第七章
    【统计学】第六章
    【统计学】第五章
    【统计学】第四章
    【统计学】第三章
    【统计学】第二章
    MYSQL基础
    股票数据Scrapy爬虫
    Scrapy爬虫基本使用
    Scrapy爬虫框架
  • 原文地址:https://www.cnblogs.com/ohlala/p/11492583.html
Copyright © 2011-2022 走看看