python工程代码语法_在html中写python代码的语法和特点-----基于webpy的httpserver

在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.title

u'hello'

>>> out.content_type

u'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 web

import markdown

globals={"markdown":markdown.markdown}

render=web.template.render("tempaltes",globals=globals)这样在全部的html文件里都能够使用 makrdown这个函数了

感觉这个函数就像是builtin的一样,

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

import ,exec

訪问属性时不能用 _开头,

不能使用open,getattr,setattr这些函数

假设你的模板不小心用了上面的情况,会出现SecurityException 这个安全

异常

知道上面的事,你就能够在html中写python了,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值