当前位置: 首页 > news >正文

南昌做微信网站自己做的软件怎么发布

南昌做微信网站,自己做的软件怎么发布,铜梁城乡建设网站,网站建设广告投放是什么Jinjia2 模板 模板的介绍 Jinja2 是一种现代的、设计优雅的模板引擎#xff0c;它是 Python 的一部分#xff0c;由 Armin Ronacher 开发。Jinja2 允许你在 HTML 文档中嵌入 Python 代码#xff0c;以及使用变量、控制结构和过滤器来动态生成内容。它的语法简洁清晰#…Jinjia2 模板 模板的介绍 Jinja2 是一种现代的、设计优雅的模板引擎它是 Python 的一部分由 Armin Ronacher 开发。Jinja2 允许你在 HTML 文档中嵌入 Python 代码以及使用变量、控制结构和过滤器来动态生成内容。它的语法简洁清晰易于学习和使用。 模板的使用 from flask import Flask, render_templateapp Flask(__name__, template_foldercustom_templates) app.route(/) def index():return render_template(index.html)if __name__ __main__:app.run(debugTrue) template_folder指定模板文件夹 默认是同级目录的 templates 在以上案例下的文件架构如下 project_folder/ │ ├── flask_app.py │ └── custom_templates/│└── index.html模板传递参数 当我们需要通过传递参数来修改模板中的内容时就可以通过模板传参来实现 # app.py from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():# 定义要传递给模板的参数user {username: John, age: 30}fruits [Apple, Banana, Orange, Mango]return render_template(index.html, useruser, fruitsfruits)if __name__ __main__:app.run(debugTrue) !--index.html-- !DOCTYPE html html headtitleFlask Template Example with Parameters/title /head bodyh1Hello, {{ user.username }}!/h1pYou are {{ user.age }} years old./ph2Favorite Fruits:/h2ul{% for fruit in fruits %}li{{ fruit }}/li{% endfor %}/ul /body /html 显示效果 使用字典传参 对模板传参也支持使用字典的办法 from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():# 定义要传递给模板的参数data {user: {username: John, age: 30},fruits: [Apple, Banana, Orange, Mango]}return render_template(index.html, **data) # 这里使用**进行解包这是Python3的特性if __name__ __main__:app.run(debugTrue) 使用**解包传参避免多参数的传参不便 模板中使用url_for函数 # app.py from flask import Flask, render_template, url_forapp Flask(__name__)app.route(/) def index():return render_template(index.html)app.route(/hello) def hello():return Hello, World!if __name__ __main__:app.run(debugTrue) !--index.html-- !DOCTYPE html html headtitleFlask Template Example with url_for()/title /head bodyh1Hello, Flask!/h1pThis is a template example./ppa href{{ url_for(hello) }}Say Hello/a/p /body /html模板继承 继承允许你创建一个基础模板并在其他模板中扩展它。 !-- base.html -- !DOCTYPE html html langen headmeta charsetUTF-8title{% block title %}{% endblock %}/title /head body{% block content %}{% endblock %} /body /html在父模板中定义 block代表可变对象语法 {% block block_name %} {% endblock %} !-- index.html -- {% extends base.html %}{% block title %}Home{% endblock %}{% block content %}h1Hello, {{ name }}!/h1 {% endblock %}使用 extends 继承模板使用 {% block block_name %}...{% endblock %}即可实现更改内容 include模板导入 在 Jinja2 模板中 include 指令允许你将一个模板导入到另一个模板中。这样可以使模板更具有模块化和可重用性使代码更易于维护和管理。通过 include 指令你可以将一个模板的内容嵌入到另一个模板中的任意位置。 from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(index.html)if __name__ __main__:app.run(debugTrue) 定义 index.html作为主页 !-- index.html -- !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleinclude/title /head body div classcontainer{% include header.html %}h4主题内容/h4{% include footer.html %} /div /body /html 定义 header.html用来显示头部 !-- header.html -- headerh1Header/h1navullia href/Home/a/lilia href/aboutAbout/a/lilia href/contactContact/a/li/ul/nav /header 定义 footer.html用来显示脚部 !-- footer.html -- footerpcopy; 2024 Flask Template Example. All rights reserved./p /footer 效果 使用静态资源 在 Web 开发中静态资源如样式表、JavaScript 文件、图像等是构建用户界面和功能的重要组成部分。在 Flask 应用中你可以使用静态资源来美化页面样式、增强交互性并为用户提供更丰富的体验。下面是如何在 Flask 中使用静态资源的简单介绍 组织静态资源文件夹 首先你需要在 Flask 项目中创建一个文件夹来存放静态资源文件通常命名为 static。在这个文件夹中你可以按照你的项目结构组织样式表、JavaScript 文件、图像等静态文件。 your_flask_app/ │ ├── static/ │ ├── css/ │ │ └── style.css │ ├── js/ │ │ └── script.js │ └── img/ │ └── logo.png │ ├── templates/ │ └── index.html │ └── app.py使用静态资源 一旦你有了静态资源文件夹你可以在模板中通过使用 url_for 函数来引用这些静态资源。例如在模板中引用样式表文件 style.css !DOCTYPE html html langen headmeta charsetUTF-8titleMy Flask App/titlelink relstylesheet href{{ url_for(static, filenamecss/style.css) }} /head bodyh1Welcome to My Flask App/h1img src{{ url_for(static, filenameimg/logo.png) }} altLogoscript src{{ url_for(static, filenamejs/script.js) }}/script /body /html在这个示例中url_for(static, filenamepath/to/resource) 函数用于生成静态资源的 URL。在调用时第一个参数 static 是 Flask 中默认用于静态资源的端点而第二个参数 filename 是静态资源的路径。 设置静态文件夹地址 from flask import Flask, render_templateapp Flask(__name__, static_folderstatic2) # 设置静态文件夹地址为 static2 # 第二种方式 app.static_folder static2app.route(/) def index():return render_template(index.html)if __name__ __main__:app.run(debugTrue) Jinjia2 语法 Jinja2 是一种现代的、设计优雅的模板引擎它为开发者提供了一种简单而强大的方式来创建动态内容。Jinja2 的语法清晰简洁易于学习和使用。在这里我将详细介绍 Jinja2 的主要语法元素 定义变量 !-- index.html -- !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleFlask Template Example/title /head body{% set title Title %}{% with subtitlesubtitle %}{% set combined_title title subtitle %}h1{{ combined_title }}/h1{% with paragraphThis is the paragraph content of my website. %}p{{ paragraph }}/p{% endwith %}{% endwith %}!-- 此处出了with的范围则不可使用其中变量subtitle等 -- /body /html with只在范围内可用 set则是全局 with和 set可以结合使用 插入变量 在 Jinja2 中你可以使用双大括号 {{ ... }} 来插入变量。这些变量将在渲染模板时替换为实际的值。 pHello, {{ name }}!/p流程控制 Jinja2 支持常见的控制结构如条件语句和循环。控制结构使用 {% ... %} 包裹。 条件语句 # app.py from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():# 假设这是从后端传递给前端的数据user {username: Alice, age: 30}return render_template(index.html, useruser)if __name__ __main__:app.run(debugTrue) !--index.html-- !DOCTYPE html html headtitle选择结构示例/title /head bodyh1欢迎访问我的网站/h1p用户信息/pulli用户名{{ user.username }}/lili年龄{{ user.age }}/li/ul{% if user.age 18 %}p您未满18岁属于未成年人。/p{% elif user.age 18 and user.age 60 %}p您已满18岁属于成年人。/p{% else %}p您已年满60岁属于老年人。/p{% endif %} /body /html 效果 循环 from flask import Flask, render_templateapp Flask(__name__)# 假设这是你的数据 items {Apple: Red,Banana: Yellow,Orange: Orange,Grapes: Purple }app.route(/) def index():return render_template(index.html, itemsitems)if __name__ __main__:app.run(debugTrue) !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleFlask Jinja2 Example/title /head bodyh1Fruit Colors/h1ul{% for fruit, color in items.items() %}li{{ fruit }}: {{ color }}/li{% endfor %}/ul /body /html 效果 注释 你可以在模板中使用 {#...#}添加注释这些注释不会在最终渲染的输出中显示。 {# This is a comment #}过滤器 过滤器允许你在输出中应用转换。它们以管道符 | 的形式使用。 官方使用文档 p{{ sentence|capitalize }}/p过滤器描述示例用法capitalize将变量的首字母转换为大写。{{ variable_name|capitalize }}lower将变量转换为小写。{{ variable_name|lower }}upper将变量转换为大写。{{ variable_name|upper }}title将每个单词的首字母转换为大写。{{ variable_name|title }}trim移除变量的首尾空格。{{ variable_name|trim }}escape将 HTML 转义为安全的字符串。{{ variable_name|escape }}safe标记变量为安全告诉模板引擎不要转义该变量。{{ variable_name|safe }}length返回变量的长度。{{ variable_name|length }}default如果变量为 False、None 或空使用默认值。 {{variable_name|default(default_value,booleanTrue)}}简单办法 {{ variable_name or default_value }}urlencode对 URL 进行编码。{{ variable_name|urlencode }}join使用指定字符将列表中的元素连接起来。{{ list_variable|join(, ) }}slice从列表中取出一部分元素。{{ list_variable|slice(start, stop) }}sort对列表进行排序。{{ list_variable|sort }}reverse将列表倒序。{{ list_variable|reverse }}dictsort对字典按键或值进行排序。{{ dict_variable|dictsort(attributekey) }}abs返回变量的绝对值。{{ variable_name|abs }}round四舍五入到指定的小数位数。{{ variable_name|round(precision2) }}striptags删除字符串中所有的HTML标签如果出现多个空格将替换成一个空格{{ variable_name|striptags }}replace字符串替换 {{ text |replace(old, new) }} 自定义过滤器 # app.py from flask import Flask, render_templateapp Flask(__name__)# app.template_filter(reverse) # 注册自定义过滤器 def reverse_filter(s): # 自定义过滤器函数return s[::-1]app.jinja_env.filters[reverse] reverse_filter # 注册自定义过滤器的第二种方法# 路由 app.route(/) def index():# 在模板中使用自定义过滤器message Hello, World!return render_template(index.html, messagemessage)if __name__ __main__:app.run(debugTrue) 使用装饰器或者 app.jinja_env.filters都可以设置过滤器 !--index.html-- !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleCustom Filter Example/title /head body porigin message: {{ message }}/p pReversed message: {{ message | reverse }}/p /body /html 定义宏 宏类似于函数允许你定义可重用的代码块。 宏没有返回值 在Python文件中定义宏 from flask import Flask, render_templateapp Flask(__name__)# 定义一个简单的宏用于在模板中显示消息 app.template_global() def display_message(message):return fMessage: {message}app.route(/) def index():return render_template(index.html, messageHello, world!)if __name__ __main__:app.run(debugTrue) 在 py文件中直接定义了宏方法可在 html文件中直接使用 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleFlask Template Example/title /head body!-- 使用宏显示消息 --{{ display_message(message) }} /body /html 在html文件中定义宏 !DOCTYPE html html langen headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleFlask Template Example/title /head body!-- 定义宏 --{% macro display_message(message) %}pMessage: {{ message }}/p{% endmacro %}!-- 使用宏 --{{ display_message(Hello, world!) }} /body /html 效果 宏文件引用 from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(index.html, messageHello, world!)if __name__ __main__:app.run(debugTrue) !-- 引入宏文件并传递变量 -- {% import macros/macros.html as macros with context %} !--引入宏而不传递变量-- {% import macros/macros.html as macros %}!-- 另一种引入方式 -- {% from macros/macros.html import display %}!-- 使用宏并传参 -- {{ macros.display_message(message) }} !-- 使用宏 -- {{ display() }}在引入宏的时候可以使用 with context来共享变量意思是此时的宏中能直接使用当前环境下有的变量。 注意文件架构 project_folder/ │ ├── flask_app.py │ └── macros/│└── macros.html!-- macros.html -- {% macro display_message(content) %} pContent: {{ content }}/p {% endmacro %}{% macro display(content) %} pContent: {{ message }}/p {% endmacro %}变量过滤器 Jinja2 提供了一些内置的变量过滤器用于对变量进行处理例如格式化日期、字符串截断等。 {{ user.created_at|date(Y-m-d) }}转义 在插入变量时默认情况下 Jinja2 会自动转义 HTML 字符以防止 XSS 攻击。但是你也可以使用 safe 过滤器来禁用转义。 {{ unsafe_html|safe }}过滤器链 你可以将多个过滤器串联在一起以便在一个变量上应用多个转换。 {{ sentence|capitalize|truncate(50) }}
http://www.yayakq.cn/news/6054/

相关文章:

  • 石家网站建设公司排名无锡中英文网站建设
  • 北京网站开发网络公司如何用dw制作个人网页
  • 小程序就是做网站安徽网站开发培训价格
  • 调研园区网站建设工作总结代理公司注册要提供什么资料
  • 市场来说网站建设销售发展怎么样顺企网赣州网站建设
  • 五莲网站建设公司天山网
  • 交易类网站做支付宝功能西安免费做网站电话
  • 网站开发项目的里程碑大连网站建设企业
  • 三合一网站五屏网站建设怎样
  • 郑州百度关键词seoseo发外链网站
  • 做房产网站长wordpress文章字数
  • 国示范校建设网站手机app是什么意思
  • 微信订阅号关键网站淘宝客怎样建设网站
  • 中山建站wordpress主题seven柒比贰
  • 云主机重装系统后网站重新部署吗建设一个网站的设备
  • 快速达建网站赣州章贡区属于什么风险区
  • 用asp做旅游网站新乡市建设路小学网站
  • 东营智能网站设计互联网营销师怎么报名
  • 做网站怎么上传物流案例网站
  • 天津高端网站建设案例vi设计合同范本最新版
  • 布吉网站建设价格全国当先的网络建站推广
  • 佛山营销网站建设咨询自建网站软件
  • app开发网站排行榜网站制作公司 顺的
  • 哪里可以做免费的物流网站wordpress博客小工具标签
  • 营销网站建设评估及分析中国工程预算网
  • 网站运营刚做时的工作内容html软件下载手机版
  • 东莞网站建设 汇卓湖州网络推广竞价
  • 免费手机网站源码seo网站分析报告
  • 建设官方企业网站网站建设合同书 简易
  • 网站建设厂商商业网点消防规范