博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在html中写python代码的语法和特点-----基于webpy的httpserver
阅读量:6677 次
发布时间:2019-06-25

本文共 4364 字,大约阅读时间需要 14 分钟。

在html文件里写python语法的内容,的注意事项:
1:python程序中的变量通过以下方法传入到html:
1:通过全局变量 :全局变量是不须要用$def with语法实现传递的,仅仅要定义了
在html中就能够用,样例例如以下:
===================================================================
#模板公共变量,以下能够定义全部的html文件都要用到的变量 ,不须要复杂的
$def with (va,vb)
t_globals = {
    'datestr': web.datestr,
    'cookie': web.cookies,
    "loginform": login,
    "gposts":model.get_posts,
}
#指定模板文件夹,并设定公共模板,base="base"设定共用的base.html模板,
在./templates/base.html这个路径 找到这个文件
render = web.template.render('templates', base='base', globals=t_globals)
=========================================================
2:通过在python程序中在render时传入 ,样例例如以下:
=========================================================
在python文件里,
render=web.template.render("./")
class index:
def GET(self):
abc="world"
render.index(name=abc)
在index.html文件里:
$def with (name)
hello $name
===========================================================
能够看到上面的样例是在python文件里对index()函数传入了name,
而在index.html文件里,要定义一个暂时变量,接受这个传入的变量 
abc是python中的变量的名字
name是html文件里变量的名字,
在render.index(name=abc)实现了变量的传递 ,
注意:在 python中render.index(a,b)能够传递多个变量 
那么在 html文件里就要声明相应的暂时变量 $def with (va,vb)
===========================================================
2:使用模板的几种方法:
1:直接使用html文件,并向index.html文件传入python变量 ,样例例如以下,
在python中:
render=web.template.render("templates")class index:  def GET(self):	return reder.index("wolrd")
 #templates是文件夹,到时把全部html文件放在templates文件夹下,如要用到的index.html
2:直接指定详细的文件,这种方法扩展行不好,
hello=web.template.frender("templates/hello.html")return hello("world")
3:使用字符串
html="$def with (name)\n hello $name"hello=web.tempate.Template(html)return hello("wolrd")
================================================================
能够看到调用了template的三种方法:
render=web.template.render("templates")仅仅指定html文件的路径 render.index("world")hello=web.tempalte.frender("templates/hello.html")指定了详细的html文件hello("world")hello=web.template.Template(string)直接把字符串传入进去,hello("world")
================================================================
上面三种方法最经常使用的是第一中,render.index的方式,
================================================================
3:以下是python 在html文件里的基本的语法
 
1:得到变量的值 ,注意仅仅是语法,没有太多的为什么 
$varible$(varible)${varible}

2:在html文件里创建新的变量 ,肯定是在赋值时才会创建新的变量 啊

语法例如以下,$ 加上空格 加上变量名,空格非常重要
$ bug=True$ va=1
$var

3: 在取变量的值的时候 ,你会看到两种语法:

第一种:    $a
另外一种:    $:a
默认的python会使用web.websafe filter对变量做HTML-encoding.就是第一种方式,另外一种方法不会对变量a做html-encoding

4: \ 这个符号的有点意思,会使多行的内容,仅仅显示一行

hello \
wolrd
注意:要在\ 这个符号后面立即敲enter,要不然 \的特殊含义会消失,并且会一起显示出来

5:问你个问题,怎样在html文件里显示$这个符号(由于给webpy当特殊的用了)

答案非常easy,输入两个$$即可了
美元的符号是$$
亲,上面仅仅会显示一个$哦

6:在html中怎样写python风格的凝视呢,我说的不是<!这种凝视哦>

$#这是凝视,你在浏览器中是看不到的,webpy把这部分给filter了

7:到了控制流部分了, 注意的面的i want这一句的缩进,要大于两个空格,

你用tab按键一般不会有问题
$for i in range(10):   i want  eat  $i apple(s) $ a=4$while a<10:   $a   $ a+=1$if a>10:   hell $a$else:   keep on ,you will do it一个for 在 html应用中的样例,这样创建一个表
$for c in ["a", "b", "c", "d"]:
$index $c

8:其他一些实用的东西 如,$def

还能够在html中定义函数,这是多么方便的东西
$def tr(value):		$for i in value:				$i			$def table(rows):	
$for row in rows: $:row
$ data=[['a', 'b', 'c'], [1, 2, 3], [2, 4, 6], [3, 6, 9] ]$:table([tr(d) for d in data])

9:另一个奇妙的 keyword code,全部的python代码都能够写在code 块以下:

$code:    x = "you can write any python code here"    y = x.title()    z = len(x + y)    def limit(s, width=10):        """limits a string to the given width"""        if len(s) >= width:            return s[:width] + "..."        else:            return s
回来到html
上面定义的变量在这里也能够用,
比如
$limit(x)
10:var块,这是个比較难懂的东东,看以下的代码
在html中
$def with (title, body)$var title: $title$var content_type: text/html
$body
在python中
>>> out = render.page('hello', 'hello world')>>> out.titleu'hello'>>> out.content_typeu'text/html'>>> str(out)'\n\n
\nhello world\n
\n'
能够看到varkeyword的作用是把在 html中定义的变量,传回到python程序中,
 python就能够依据这些内容做很多其它的处理,

11:在html文件里能够訪问的builtin 函数 和变量 ,经常使用的函数都是

能訪问的,如max,min,range,
True,False也是能识别的,
与builtin相应的一个概念是详细应用程序的globals变量或是函数,
怎样使用这些globals变量或是函数能够被全部的html templates訪问呢?
样例例如以下:
import webimport markdownglobals={"markdown":markdown.markdown}render=web.template.render("tempaltes",globals=globals)
这样在全部的html文件里都能够使用 makrdown这个函数了
感觉这个函数就像是builtin的一样,

12:出于安全考虑,以下的命令不能在html模板中出现 

import ,exec
訪问属性时不能用 _开头,
不能使用open,getattr,setattr这些函数
假设你的模板不小心用了上面的情况,会出现SecurityException 这个安全
异常
知道上面的事,你就能够在html中写python了

转载地址:http://bpyao.baihongyu.com/

你可能感兴趣的文章
中文字符按拼音首字母排序(转)
查看>>
【mysql】一次有意思的数据库查询分析。
查看>>
Spring 框架中注释驱动的事件监听器详解
查看>>
C++获取window临时路径
查看>>
Python(面向对象编程—1)
查看>>
自己封装的数据通信服务组件DotNet.ServiceModel
查看>>
Docker创建虚机和swarm
查看>>
JSON入门学习
查看>>
一个很好的UML工具
查看>>
[转]无需看到你的脸就能认出你——实现Beyond Frontal Faces: Improving Person Recognition Using Multiple Cues...
查看>>
函数Curry化
查看>>
二进制补码,原码,反码和移码
查看>>
Default Constructor 的建构操作
查看>>
函数中的不定长参数研究 *and**
查看>>
hive如何执行mr
查看>>
马士兵hadoop2.7.3_yarn笔记
查看>>
python自编程序实现——robert算子、sobel算子、Laplace算子进行图像边缘提取
查看>>
Extjs5项目进行中:打开新面板并加载数据(三)
查看>>
2012年8月14日 星期二 equals()方法 (冲突备份)
查看>>
20本最好的Linux免费书籍-转
查看>>