网站建设资讯

NEWS

网站建设资讯

Flask_学习笔记_05:Flask中的网页模板-创新互联

今天来学习一下Flask中网页模板以及网页模板参数的使用。

创新互联长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为临清企业提供专业的成都做网站、网站制作,临清网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。

如果你是使用Pycharm pro版的话,创建项目的时候,选择Flask项目,所有的基础文件和文件夹Pycharm会自动帮你创建出来,在网上找了张图,仅供参考:

选择项目类型:Flask,这里注意你的Python版本
Flask_学习笔记_05: Flask中的网页模板
创建好之后就是下面的样子:
Flask_学习笔记_05: Flask中的网页模板

由于我用的是Pycharm community版本,没有项目类型可选,但是自己补一下两个文件夹就行,一个是static,一个是templates。
简单说明一下,static是存放image, css等项目文件的。templates是存放页面模板等项目文件的。
Flask_学习笔记_05: Flask中的网页模板

下面就模拟一个需求,用户已经登录了,要在首页显示用户的用户名信息,再随便写一句欢迎的话。这里我们就要引入一个新的类:render_template,模板渲染。为什么这么叫?因为就是直接翻译过来的,它的功能就是来渲染模板的,至于渲染这个词,是绘图术语,渲染在电脑绘图中是指用软件从模型生成图像的过程。从这个定义来理解的话,就是美化,填充模型,让模型更好看吧。就这么理解吧!

.py完整代码如下:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('index.html', username='uncleBen')

if __name__ == '__main__':
    app.run(debug=True)

需要注意的是:
首先,导入Flask和render_template
其次,在使用的时候,一般就是return的内容做渲染,那就是return render_template(),这个render_template()函数里需要传一个最基本的参数就是你要渲染哪个页面,告诉它html文件名就行,因为它默认就会去templates这个文件下找你提供的html文件名,所以你的html文件不要乱放,否则它会找不到的。另外一个参数就是你要在前端页面中显示什么?今天这个例子是要显示用户名,拿就传一个username参数进去。如有其它参数,也可以加,然后赋值。

好了,py文件内容写好了,那么html里的代码应该这么写呢?这么才能拿到参数的值呢?来看一下html的代码:




    
    


    欢迎{{ username }}来到您的个人主页,这个页面是templates文件夹中的index.html模板。

很简单,唯一跟普通HTML文件的区别就是多了一个{{ username }},重点来了,在Flask项目的HTML中如下想引用参数(py文件中定义的),必须要用双花括号{{ }}括起来,就好了。so easy啊!
来看一下效果,上面Py代码里我传的username='uncleBen',效果如下:
Flask_学习笔记_05: Flask中的网页模板
然后我们再换一个用户名,让username='张无忌'
Flask_学习笔记_05: Flask中的网页模板

如果有多个参数呢?那刚开始你肯定要这么写了:

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    return render_template('index.html', username='张无忌', reg_days=15, location='光明顶')

if __name__ == '__main__':
    app.run(debug=True)

运行一下,看看结果:
Flask_学习笔记_05: Flask中的网页模板

但是如果还有更多参数呢???比如10个,20个,要写这么多吗?这样会让人看到很不爽和很不专业的感觉。

from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def index():
    context = {
        'username': '张无忌',
        'reg_days': 100,
        'location': '光明顶'
    }
    return render_template('index.html', **context)

if __name__ == '__main__':
    app.run(debug=True)

为了区别,我把注册时间改成了100,来,运行一下,看一下效果:
Flask_学习笔记_05: Flask中的网页模板

小结

  1. 模板文件位置:应该放到templates文件夹下。
  2. 如果使用模板渲染函数,首先导入render_template类。
  3. 使用render_template()函数时,要告诉这个函数要渲染的html文件名,还有参数名和值,如果有的话。
  4. 在HTML中引用参数的格式:{{参数名}},一定要这个格式,这是Flask的语法,其它格式无效。
  5. 参数多的情况下,建议使用字典形式定义参数和值,然后在render_template()中利用**+字典名进行传参。

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前题目:Flask_学习笔记_05:Flask中的网页模板-创新互联
当前链接:http://cdweb.net/article/dcdjhs.html