首页 > 其他分享 >3、模板渲染及对象属性访问

3、模板渲染及对象属性访问

时间:2024-03-21 11:57:37浏览次数:17  
标签:__ index name 渲染 person user mail 模板 属性

代码如下:
from flask import Flask, render_template

app = Flask(__name__)


# 定义类用于参数传递
class User:
    """
    对于参数age是后续加上去的,因为前期已经对于类进行过实例化了,所以在增加参数时,最好给上一个默认值.
    不然之前的写法都要重新修改.
    """
    def __init__(self, name, e_mail, age=18):
        self.name = name
        self.e_mail = e_mail
        self.age = age


@app.route("/")
def hello_world():
    """
    在模板中的使用:
    0. 对于普通参数的传递
    1. 对于类,通过user.name和user.e_mail进行访问.详见index.html
    2. 对于字典,可以通过person["name"]和person["e_mail"]进行访问,也可以通过
       上述类的访问形式进行访问. person.name person.e_mail 详见index.html
    index.html文件在最后
    """
    name = "Tina"
    user = User("Tina", "[email protected]")
    person = {"name": "Tina", "e_mail": "[email protected]"}
    return render_template("index.html", name=name, user=user, person=person)


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5001, debug=True)

效果:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1>学习Flask之第三步</h1>
<!--对于模板中参数两边的大括号是Jinja2模板的使用规则-->
<!--普通参的使用-->
<p>用户名:{{ name }}</p>
<!--类参数使用-->
<p>用户名:{{ user.name }}</p>
<p>邮箱:{{ user.e_mail }}</p>
<!--数据字典参数使用 两种方法-->
<div>用户名:{{ person["name"] }}</div>
<div>邮箱:{{ person["e_mail"] }}</div>
<div>用户名:{{ person.name }}</div>
<div>邮箱:{{ person.e_mail }}</div>
</body>
</html>
index.html

 

标签:__,index,name,渲染,person,user,mail,模板,属性
From: https://www.cnblogs.com/pythonex/p/18087039

相关文章

  • 题解 P5809【【模板】多项式复合逆】
    \(\text{Link}\)力求把最新技术翻译地人人都能看懂。推荐先学习:拉格朗日反演。题意给出\(n\)次多项式\(F(x)\),求一个\(n\)次多项式\(G(x)\)满足\(F(G(x))\equivx(\bmodx^{n+1})\)。保证\([x^0]F(x)=0\)且\([x^1]F(x)\ne0\)。\(n\le2\times10^4\)。思路我们......
  • uniapp 开发模板
    简介vue3-uniapp-template是基于vue3的uniapp快速开发模板,包含状态管理、网络请求、路由拦截、UI组件等常用功能。主要使用的技术栈:uniapp、vue3、pinia、vite、uv-ui下载地址PS:如果对你有帮助的话,点个Star支持下哈~GithubGitee项目启动#克隆代码gitclonehttps://gi......
  • C++模板实现之谜:为何只能在头文件中?解密原因与高级分离技术
     概述:C++中模板必须在头文件中实现,因为编译器需要可见的实现以生成模板具体实例的代码。通过头文件,确保模板在每个编译单元中都能被正确展开,提高可维护性。在C++中,模板只能在头文件中实现的主要原因是编译器在使用模板时需要生成对应的代码,而这部分代码必须在编译时可见。以......
  • Three.js中加载和渲染3D Tiles
    1.引言3DTiles是3DGIS中常见的三维数据格式,能否用Three.js来加载渲染呢?肯定是可以,Three.js只是一个WebGL框架,渲染数据肯定可以,但是加载、解析数据得手动解决有没有一个第三方库解决这个问题呢?有,比如这个:NASA-AMMOS/3DTilesRendererJS:Rendererfor3DTilesinJavascrip......
  • C++ 函数模板
    C++函数模板函数模板在C++中,函数模板是一种允许函数以一种类型无关的方式来操作的工具。它们使得函数能够处理不同类型的数据而不需要为每种类型编写重复的代码。函数模板的核心思想是“参数化类型”,这意味着在定义函数时,可以使用一个或多个通用类型参数,而在函数被调用时......
  • C++ 模板入门详解
    目录0.模板引入1.函数模板 1.函数重载的缺点 2.函数模板的概念和格式2. 函数模板的实例化 2.1 隐式实例化:让编译器根据实参推演模板参数的实际类型 2.2 显式实例化:在函数名后的<>中指定模板参数的实际类型2.3函数模板参数的匹配规则 3.类模板 3.1类......
  • P2742 [USACO5.1] 圈奶牛Fencing the Cows /【模板】二维凸包
    原题链接题解这么优质的文章我写什么题解好难解释必然性感觉像模拟??code#include<bits/stdc++.h>usingnamespacestd;intq[100005]={0};structnode{doublex,y;}a[100005];doubledis(intb,intc){nodei=a[b],j=a[c];returnsqrt((i.x-j.x)*(i.x-......
  • C++初阶:初识模板
        在之前的C与C++编程中,针对实现同样类型功能的函数我们学会使用了函数重载,终于可以不用记忆多个功能相同但是函数名不同的函数了喵。但是在实现的时候仍然显得有点不太方便,有些冗余。世界是懒人的世界,为了方便懒人的使用,模板应运而生~目录一、引子二、函数模......
  • 前端学习-vue学习008-生命周期和模板引用
    官方教程链接ref标签(模板引用)手动操作DOM,使用模板引用,就是指向模板中一个DOM元素的ref<pref="pElementRef">hello</p>要访问该引用,我们需要声明一个同名的ref:constpElementRef=ref(null)生命周期详见前端学习-vue视频学习010-生命周期<template><!--html-......
  • 前端学习-vue学习007-计算属性+Class 与 Style 绑定
    官方教程链接Class与Style绑定Vue专门为class和style的v-bind用法提供了特殊的功能增强<span:class="{done:item.done}">{{item.text}}</span>如果item.done是true,以上代码实际为<span:class="done">{{item.text}}</span>如果item.done是false,......