运维的我要学开发--Flask(1)

Flask默认使用的是Jinja2的模板引擎,下面将会介绍下Flask提供给模板的一些方法。

#-*- coding: utf-8 -*-
#导入一些函数
from flask import Flask
from flask import render_template,g
#创建一个app
app = Flask(__name__)
#创建一个装饰器
@app.route("/")
@app.route("/index")
def index():
    string="<h1>11</h1>"
    g.test = "I am a g variable"
    #默认会转义html标签,如果不想转义可以通过|safe来关闭转义
    #或者通过下面模板标签来关闭html标签转义
    #{% autoescape false %}
    #{% endautoescape %}
    return render_template("test.html",name=g.test)
#测试g.test是不是可以全局
#测试结果表明g.test是不可以夸request的
@app.route("/test")
def test():
    return render_template("test.html",name=g.test)
#创建全局的模板变量或函数
#下面创建的test变量可以在所有的模板中使用
@app.context_processor
def inject_user():
    return dict(test="<h1>a tmp variable</h1>")
#下面的functest函数也是可以在所有的模板中使用的
@app.context_processor
def testfunc():
    def functest(name):
        return "<h1>%s</h1>" %name
    return dict(functest=functest)
#注册一个过滤器
#方式一
##@app.template_filter(‘reverse‘)
##def reverse_filter(s):
###方式二
def reverse_filter(s):
    return s[::-1]
app.jinja_env.filters[‘reverse‘] = reverse_filter
#运行app
if __name__ == "__main__":
    app.run(debug=True,host=‘0.0.0.0‘)

下面是templates目录的下test,html模板

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>测试页面</title>
</head>
<body>
<h1>转义后的页面</h1>
{{ name|safe }}
<h1>没有转义后的页面</h1>
{{ name }}
<h1>下面这块区域自动转义关闭了</h1>
{% autoescape false %}
    <p>autoescaping is disabled here
    <p>{{ name }}
{% endautoescape %}
{{ name|reverse }}
<h1>我是test变量 通过context_processor传递过来的</h1>
{{ test }}
<h1>我是通过context_processor注册的函数</h1>
{{ functest("你好") }}
</body>
</html>

运行后结果如下:

下面是放我http://127.0.0.1:5000/test页面的结果,因为g.user只是在一个request中共享,所以这个变量是不存在的所以报错。

运维的我要学开发--Flask(1),布布扣,bubuko.com

时间: 2024-08-08 17:34:50

运维的我要学开发--Flask(1)的相关文章

运维的我要学开发--Python(3)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' 检查一个文本是字符串还是二进制 思想:如果字符串中包含了空值或者其中含有超过30%的字符 的高位被置1或是奇怪的控制码,我们就人为这段数据是二进制数据 ''' from __future__ import division import string #所

运维的我要学开发--Python(4)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' 文件相关的操作: read() open() 两个参数: 第一个:文件路径 第二个:打开文件的模式 常用的文件打开模式: r:文本模式读取 rb:二进制模式读取 w:创建文件并文本模式 wb:创建文件,二进制模式写 rU:通用换行符的文本模式读取文件(独立

运维的我要学开发--Python(6)

本文均来自Python Cookbook,本博文励志将Cookbook中的string部位,文件,面向对象编程部分完成,本系列博文陆续还会介绍flask框架,每篇博文都以一个个小例子展示. #-*- coding: utf-8 -*- ''' windows下修改文件属性 ''' import win32con,win32api,os #创建一个文件,并展示如何操作它 thefile = 'test' f = open('test','w') f.close() #设置成隐藏文件... win3

运维工程师是要学python还是学go那?

在我们的认知中,运维工程师就是一个背锅侠,那么咱们怎么样来避免做背锅侠那? 可能有人会告诉你,你需要去懂一门开发语言,其实在现价段,掌握一门开发语言已经成为高级运维工程师的必备计能.不会开发,你就不能充分理解你们系统的业务流程,开发人员是很少关注性能的问题,他们只会把功能开发完成就可以了,那么性能问题就需要运维人员来做.一个业务上线了,导致CPU使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人员处理了,这样咋体现你的价值?如果是这

运维工程师该干什么学些什么?[致菜鸟]

很多刚学linux运维的朋友,总是搞不懂,运维工程师工作中干些啥?学的这些东西有什么用?今日我特来总结总结,希望能帮助即将跨入该行的人形成一个整体的思路.下面红色字体代表所要掌握的LInux免费开源工具. 运维工程师干些什么 总结两句话 1.  保障业务长期稳定运行(如网站服务器.游戏服务器等等). 2.  保障数据安全可靠(如用户名密码.游戏数据.博客文章.交易数据等等). 由这两句话推演运维工程师要学些什么 一.保障业务长期稳定运行 出一点点差错,用户就要投诉了. 1.业务跑在什么上面? 网

情人节了,可怜的IT运维男,没学过ITIL,还是没有女朋友……

2015年情人节来临,亲爱的IT男,别告诉我,你还没有女朋友,你为什么总在加班,没时间恋爱:为什么总在被业务部门抱怨,没心情恋爱:为什么工作总也做不顺,没信心恋爱!!!为什么这个可怜的人是你,原因很简单,你还没学ITIL吧. 你是一个企业的IT运维人员吗?你们的IT运维工作是否杂而无章,是否责任不明?你是否对复杂的运维流程和客户的无尽抱怨束手无策?你是否希望在领导面前提出有效的合理建议,以提升企业的IT服务管理水平?ITIL就是您的解决方案. 对于企业实施ITIL,可以有助于最终进行完善的服务管

老男孩:做运维比做开发岗位有哪些特殊好处,你知道么?

现实中很多网友,包括大学生对编程开发了解很多,但对运维了解较少,有经验的部分人员(包括一些从事运维的)也会觉得开发更牛逼,运维就是背黑锅(如何不背黑锅,看老男孩的以后文章)的,运维==黑锅侠. 那么,老男孩就给大家讲讲老男孩眼中运维的好处,让大家重新认识下运维岗位的魅力吧. 1.做运维可以认识更多人脉,同时也被更多人认识. 相对开发来讲,运维岗位主要以服务为主,因此,做运维可以比开发认识更多的人,同时也被更多的人认识. 你的成功不在于你认识多少人,而在于有多少人认识你!--老男孩思想 当有非常多

浅谈现下Linux运维人员面临的问题

随着时代的进步,技术的飞速发展,IT领域对用人的要求也逐步提高,为了更佳的适应自己的市场环境,小伙伴们不断地走在学习的路上,给自己充电为自己增值.时代在进步,大家在进步,若是停留,你就已经退步了.那对于现在的Linux运维人员呢?面临着什么问题呢? 一.云计算兴起带来的问题 云计算的兴起,解决了传统的选机房.买代宽.买网络设备.甚至系统安装,企业用户只要付费就可以用网络服务了,一些低端的运维工程师饭碗不保.但是,每个企业都有各自的特殊需求,因此优秀的运维工程师依然大量稀缺. 二.自动化和人工智能

运维和运维开发

国内做运维的人,很多觉得开发很神秘很难 国内做开发的人,很多觉得运维就是搬机器收报警,脏活累活7*24随时等待召唤 相互都把对方理解错了. 以我多年的经验来看,国内的运维的确存在很多问题.比如,开发人员被宠的太厉害,运维人员话语权少.由于人力便宜,在自动化运维方面重视不够.等等. 这样造成一个印象,运维围着开发转,运维只能干累活脏活,待遇还比开发低. 国外反过来.最突出的一个方向,dev-ops,运维开发.要求又有系统管理经验,又懂底层又懂运维,又会开发. 这种人比普通开发的收入还高. 简单来说