Python实战1在网页上显示信息

前次容易引见了wb.py。今日先来简略说明下阿谁hlloworld页面的代码:

importwb

导入wb.py模块。

urls=(

/,indx

)

这是指定网站url的般配准则,左侧是正则表白式,右侧是对应处置函数的称呼。

classindx:

dfGET(slf):

rturnHllo,world!

这即是处置哀求的函数indx。GET和POST是HTTP的两种哀求方法,正常来讲,GET用于哀求网页,而POST多用于提交表单。举个不谨严的栗子:当你在涉猎器地点栏中输入一个地点并按下回车,便是发送了一个GET哀求;而当你在翻开的页面中输入用户名和暗码,点击登录按钮,则是发送了一个POST哀求。这边的GET函数描摹了对于一个GET哀求的处置方法:直接返回一个字符串。

if__nam__==__main__:

app=wb.application(urls,globals())

app.run()

末了,当这个代码文献被履行时,咱们将建立一个application,它会遵从咱们界说的url准则实行对应的处置,并在靠山一贯运转,单独等候哀求的到来。

插一句:由于这个系列的文章注重于“实战”,以是我只会搬开挡在道路正前哨的石头,对于触及的诸多细节没法八面玲珑。纵然这段容易的hlloworld代码中,对于url的正则般配、GET/POST的差别等,均可说上许多。但此刻我只可略过。若有疑义,招待在QQ群和论坛上商议。

只是在页面上显示hlloworld显然不能餍足我的需求。我是想要一个对于片子的网站,那最最少得在页面上显示一些片子的讯息吧。

一种不言而喻的办法是,把要显示的讯息拼成字符串,而后返回。

在代码里界说一组数据,一个由dict构成的list:

movis=[

  {

    titl:ForrstGump,

    yar:,

  },

  {

    titl:Titanic,

    yar:  ,

  },

]

而后把GET办法改成:

dfGET(slf):

pag=

forminmovis:

pag+=%s(%d)\n%(m[titl],m[yar])

rturnpag

movis是一个包括了影片题目和年头讯息的list。在GET办法中,把movis里每一条实质掏出来,拼接成一全体字符串,做为完毕返回。

假设你以前曾经运转了cod.py,革新页面将会看到新的实质:

ForrstGump()

Titanic()

是不是有点近似在指示行输出完毕也许在文本文献中储备实质?但做为一个网页,假设之后要增加更多的显示成就和交互机能,云云写必定是要跪。幸亏wb.py给咱们供给了一种更便利的页面展现方法--模板。

刚才咱们用的办法近似于在Python里写HTML,这是对照苦痛的。而wb.py的模板是让你能在HTML里写Python。

首先咱们需求在代码里指定模板:

rndr=wb.tmplat.rndr(tmplats/)

在GET办法里挪用模板:

dfGET(slf):

rturnrndr.indx()

模板的返回值便是一个处置好的页面,以是直接rturn就可以够了。

而后在项目文献夹,也便是cod.py地方的目录下新建一个叫做tmplats的目录,内里新建一个indx.html文献做为模板。提防这边的tmplats、indx定名都需求与你代码里的设定一致。假设你是吧一个muban文献夹下的shouy.html做为模板,那响应代码就应改成:

rndr=wb.tmplat.rndr(muban/)

rndr.shouy()

在模板indx.html里写下:

h1CrossinsMoviSit/h1

h1是HTML中示意题目的标签。保管cod.py和indx.html后革新页面,你将会看到一行很大的题目:

CrossinsMoviSit

这示意模板曾经奏效了。但movis的讯息仍旧没有显示。假设需求在模板中显示讯息,需求将讯息传播给模板:

dfGET(slf):

rturnrndr.indx(movis)

而后在模板里,领受并行使传播进入的参数:

$dfwith(movis)

h1CrossinsMoviSit/h1

$movis

wb.py模板中的$dfwith示意这个模板中将要行使的变量。提防必须把它放在模板的第一行。假设有多个参数,需求全体顺序列在括号中。

$movis则示意猎取movis变量的值。

保管革新,页面上曾经能够看到咱们在代码中界说的movis讯息了,但照样list直接调动字符串的成就。

更近一步地,咱们能够在模板中对数据实行操纵,让它们看起来更顺心一点:

$formoviinmovis:

  li

  $movi[titl],$movi[yar]

  /li

模板中的语法和Python近似,不过前方需求增加$标识。缩进照样需求遵从Python中的样板。li是HTML中列表的标签。

这时间,页面上曾经就可以以列表的气象显示片子讯息了(封面图所示)。只管照样浅陋,但一起才刚才开端,咱们的征程是星斗大海。

(关联代码文献已上传在论坛的帖子里)

#====Crossin的编程课堂====#




转载请注明:http://www.aierlanlan.com/rzfs/1135.html