Jinja

Python全栈之Flask 简介

两盒软妹~` 提交于 2020-08-12 19:16:02
前言 Python Web框架里比较有名当属Django,Django功能全面,它提供一站式解决方案,集成了MVT(Model-View-Template)和ORM,以及后台管理。但是缺点也很明显,它偏重。就像是一个装潢好的房子,它提供好了你要用的东西,直接拿来用就可以。 Flask相对于Django而言是轻量级的Web框架。和Django不同,Flask轻巧、简洁,通过定制第三方扩展来实现具体功能。 可定制性,通过扩展增加其功能,这是Flask最重要的特点。Flask的两个主要核心应用是Werkzeug和模板引擎Jinja。 WSGI Web Server Gateway Interface(Web服务器网关接口,WSGI)已被用作Python Web应用程序开发的标准。 WSGI是Web服务器和Web应用程序之间通用接口的规范。 Werkzeug 它是一个WSGI工具包,它实现了请求,响应对象和实用函数。这使得能够在其上构建web框架。 Flask框架使用Werkzeug作为其基础之一。 jinja2 jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。 Flask通常被称为微框架。 它旨在保持应用程序的核心简单且可扩展。Flask没有用于数据库处理的内置抽象层,也没有形成验证支持。相反,Flask支持扩展以向应用程序添加此类功能

python 利用jinja2模板生成html代码实例

落花浮王杯 提交于 2020-08-11 21:34:59
这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 from jinja2 import Environment, FileSystemLoader import json def generate_html(data): env = Environment(loader = FileSystemLoader( './' )) # 加载模板 template = env.get_template( '模板.html' ) # template.stream(body).dump('result.html', 'utf-8') with open ( "result.html" , 'w' ) as fout: html_content = template.render(data = {}) fout.write(html_content) # 写入模板 生成html if __name__ = = "__main__" : result = {} generate_html(result) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Nginx系列(四)——配置文件自动化管理

最后都变了- 提交于 2020-08-11 02:25:41
Automation 自动化 需要安装Puppet class nginx { package {"nginx": ensure => 'installed',} #确认Nginx已安装 service {"nginx": ensure => 'true', hasrestart => 'true', #确认开机自启 restart => '/etc/init.d/nginx reload', #重启Nginx } file { "nginx.conf": path => '/etc/nginx/nginx.conf', require => Package['nginx'], notify => Service['nginx'], content => template('nginx/templates/nginx.conf.erb'), user=>'root', group=>'root', mode='0644'; } } Chef 安装Chef package 'nginx' do action :install end service 'nginx' do supports :status => true, :restart => true, :reload => true action [ :start, :enable ] end template 'nginx

运维太忙?那是你还没掌握 Ansible !

☆樱花仙子☆ 提交于 2020-08-10 01:59:11
Ansible 初试 实验介绍 随着云技术的日渐成熟以及服务器数量的增多,对于运维的日常管理也就逐渐繁杂,因此越来越多的运维管理就趋向于自动化的方式。所以从本周开始将带着大家认识和学习几个常用的自动化运维的工具。 本节主要讲解的是 Ansible 工具,虽然 Chef、Puppet、SaltStack and Fabric 等等这些都是比较流行的自动化运维管理工具,但是相较于 Ansible 来说要复杂得多,不过每个工具也是各有各的好处,这里我们就先来学习这个比较简单的一款自动化运维工具—— Ansible 。 知识点 Ansible 的简介 Ansible 的安装 Ansible 的配置 ad-hoc 临时命令 Ansible 简介 Ansible 是一款基于 Python 开发,能够实现了批量系统配置、程序部署、运行命令等功能的自动化运维工具。Ansible 主要是基于模块进行工作的,本身没有批量部署的能力,真正实现部署功能的是运行的模块。 结构框架 和 Chef、Puppet 刚好相反,Ansible 使用的是无代理体系结构,这种体系结构可以通过防止节点轮询控制机器来减少网络开销。Ansible 提供的结果框架如下所示: 图片来源: https://geekflare.com/ansible-basics/ Ansible :运行在中央计算机上; Connection

用Python发一封图文并茂的邮件

折月煮酒 提交于 2020-08-06 19:38:50
最近使用了不少通讯工具的接口, 比如企业微信机器人,钉钉,微信公众号的接口(未认证的订阅公众号),相对于邮件来说,它们的表现形式太弱。比如没有更丰富的版本方式。当然了,并不是说表现形式越棒就是约好的通知手段,这个依个人情况而定,而我恰恰需要比较丰富的表现形式,最终还是回到了邮件,邮件真香! 而个人微信号的接口我没有合适的微信号可以登录,如果网页版微信没有被封的话,我想这个是表现形式与消息时效性结合的最好的方式。 环境 虽说就发邮件这么个小事,很容易兼容Python2, Python3, 但是大家还是拥抱Python3吧, 我这里没有做python2的兼容写法,所以需要python3以上。 邮件的格式 邮件的格式主要就两种: plain和html plain就像一个普通的文本, 没有格式。 html就如其名, 是html的格式,相当于一个邮件就是一个 静态 的网页,这样的话可玩性就很高了,你可以通过css控制表现形式. 注意: 这里的css虽然语法一样,但,是否与浏览器渲染结果完全一致, 是不一定的。 那么可能有人要问了,我要发一个动态的网页怎么办? 发个链接呀 邮箱账号 无论是QQ邮箱抑或网易邮箱都是没有问题的,重要的是有一个可以通过smtp服务器发送邮件的账户名及密码,这里大家百度吧。 发送邮件的代码 因为发送邮件的代码在下面每个步骤都是一样的所以线贴出来 def send

【2020Python修炼记】web框架之 Django框架基础

女生的网名这么多〃 提交于 2020-08-05 03:05:04
【目录】 一、引子 二、 Django框架 一、引子 1、后端举足轻重的地位 前端 —————— 后端 ———————— 数据库 2、接下来,一起靠近Django框架 纯手撸web框架 # HTTP协议 """ 网络协议 HTTP协议 数据传输是明文 HTTPS协议 数据传输是密文 websocket协议 数据传输是密文 四大特性 1.基于请求响应 2.基于TCP、IP作用于应用层之上的协议 3.无状态 4.短/无链接 数据格式 请求首行 请求头 请求体 响应状态码 1XX 2XX 200 3XX 4XX 403 404 5XX 500 """ # 如何做到后缀的不同返回不同的内容 # 拿到用户输入的后缀 做判断 # 不足之处 1 .代码重复(服务端代码所有人都要重复写) 2 .手动处理http格式的数据 并且只能拿到url后缀 其他数据获取繁琐(数据格式一样处理的代码其实也大致一样 重复写) 3.并发的问题 借助于wsgiref模块 """ urls.py 路由与视图函数对应关系 views.py 视图函数(后端业务逻辑) templates文件夹 专门用来存储html文件 """ # 按照功能的不同拆分之后 后续添加功能只需要在urls.py书写对应关系然后取views.py书写业务逻辑即可 动静态网页 """ 静态网页 页面上的数据是直接写死的 万年不变 动态网页

第21天: Web 开发 Jinja2 模板引擎

风流意气都作罢 提交于 2020-07-27 09:29:17
by 太阳雪 被之前的文章中,简单介绍了 Python Web 开发框架 Flask,知道了如何写个 Hello World,但是距离用 Flask 开发真正的项目,还有段距离,现在我们目标更靠近一些 —— 学习下 Jinja2 模板。 模板的作用 模板是用来做什么的呢?模板是用来更高效地生成相应时的 Html 文本的,没有模板,可以手写,比如之前的 hello world 示例,写段 html 代码: <h1>Hello world!</h1> 对于简单的练习还行,但对于规模大的,动态化程度高的项目来说,这样写就有些勉强了,即,不利于项目和产品化。那么模板有什么好处呢: 能让展现逻辑和业务逻辑 展示逻辑即 UI,就是用来给用户看和操作的,业务逻辑是业务规则,比如什么条件可以注册,什么权限能考到什么。模板将展现逻辑封装起来,业务逻辑写在视图函数中。 能使项目更易维护 由于展现逻辑和业务逻辑的分离,它们可以由不同的开发人员来维护,不会有代码冲突的问题 使项目更加安全 在做交互式开发中,有个原则: 永远不要相信用户的输入 ,因为恶意用户可能通过输入来注入(关于注入以后有机会可以单独聊聊),而模板在一定程度上会防注入,例如用户输入一点 html 代码作为输入,默认情况下模板会将其替换为网络安全字符,以防止恶意注入。 能提高开发效率 有了模板,相当于一个展示逻辑的函数,所以就可以被复用

Flask中的Response/Request/session/jinja2/装饰器

て烟熏妆下的殇ゞ 提交于 2020-05-08 07:40:47
一. Response 1.Flask中的HTTPResponse Content-Type: text/html; charset=utf-8 from flask import Flask app = Flask(__name__) @app.route('/') # app中的路由装饰器 def home(): """ 视图函数 :return: 响应(5种) """ return 'Hello Flask' # HTTPresponse app.run() 在Flask 中的HttpResponse 在我们看来其实就是直接返回字符串 2.Flask中的Redirect from flask import Flask, redirect app = Flask(__name__) @app.route('/jump') def jump(): return redirect('/') app.run() 3.Flask 中的 render (render_template) Content-Type: text/html; charset=utf-8 from flask import Flask,render_template app = Flask(__name__) @app.route('/index') def index(): return render

初识Flask框架,以及Flask中的模板语言jinjia2和Flask内置的Session

大城市里の小女人 提交于 2020-05-08 07:40:22
一、web框架的对比   首先我们先来看下比较火的web框架   1.Django:   优点:大而全,所有组件都是组织内部开发高度定制化,教科书级别的框架   缺点:大到浪费资源,请求的时候需要的资源较高   2.Flask:   优势:小而精,组件只有session,第三方机构强烈支持Flask,非常多的三方组件,简单至极   缺陷:由于三方组件的关系,稳定性相对较差  Flask-session   3.Sanic   优势:异步IO非阻塞,原生WebSocket,小而精,组件只有Session,第三方机构强烈支持非常多的三方组件   缺陷:复杂度太高   扩展:   QPS = 请求每秒钟的次数   时间片:CPU工作一次的时间单位 二、Flask的安装与启动   1.首先是安装Flask,在python中直接输入安装代码即可 pip install Flask      2.启动Flask   三行启动Flask from flask import Flask app = Flask( __name__ ) app.run()      六行代码启动Flask在前端输出Hello Flask from flask import Flask app = Flask( __name__ ) @app.route( " / " ) def index(): return "