WEB服务器在生成HTML网页时,有两个选择,一个是从代码里嵌入HTML来生成HTML页面返回,另一个是从HTML代码里嵌入执行代码来生成HTML页面返回。这两种方式,其实都有使用,比如在嵌入式系统里,往往就是使用C或C++来生成HTML页面,这些是嵌入在C++代码里面的。但是这种方式是有它的缺点的,比如一个淘宝上页面,其实很多图片资源和网页的样式是固定的,只要少部分数据需要从数据库里找出来,再填充生成的,这时变动的数据非常小,就可以把固定的数据变成一个模块。当需要修改图片资源时,就不方便了。
同样,在 Python 中写 HTML 不是聪明的选择,相反在 HTML 中写 Python 则有趣的多。幸运的是,web.py 让这件事情做得简单而又漂亮。
给模板新建一个目录(命名为 templates),在该目录下新建一个以 .html 结尾的文件,内容如下:
<em>Hello</em>, world!
你也可以在模板中使用 web.py 模板支持代码:
$def with (name)

$if name:
    I just wanted to say <em>hello</em> to $name.
$else:
    <em>Hello</em>, world!
如上,该模板看起来就像 python 文件一样,除了顶部的 def with (表示从模板将从这后面取值)和总是位于代码段之前的$。当前,template.py 首先请求模板文件的首行 $def 。当然,你要注意 web.py 将会转义任何任何用到的变量,所以当你将 name 的值设为是一段 HTML 时,它会被转义显示成纯文本。如果要关闭该选项,可以写成 $:name 来代替 $name。

回看再看 TestTemplate.py。在第一行之下添加:

render = web.template.render('templates/')

这会告诉web.py到你的模板目录中去查找模板。然后把 index.GET改成: 告诉 web.py 在你的模板目录下查找模板文件。修改 index.GET :

name = 'Bob'    
return render.index(name)
('index' 是模板的名字,'name' 是传入模板的一个参数)

访问站点它将显示 hello Bob。
但是如果我们想让用户自行输入他的名字,么办?如下:
i = web.input(name=None)
return render.index(i.name)
访问 / 将显示 hello world,访问 /?name=Joe 将显示 hello Joe。
URL 的后面的 ? 看起来不好看?修改下 URL 配置:
'/(.*)', 'index'
然后修改下 index.GET:
def GET(self, name):
    return render.index(name)

现在访问 /Joe 看看,它会显示 hello Joe。

例子的源码:

#python 3.6
#蔡军生
#http://blog.csdn.net/caimouse/article/details/51749579
#
import weburls = ('/(.*)', 'index'
)app = web.application(urls, globals())
render = web.template.render('templates/')class index:def GET(self, name):i = web.input(name=None)return render.index(i.name)if __name__ == "__main__":app.run()

需要模板的目录里创建一个文件sample\templates\index.html,它内容如下:

$def with (name)$if name:I just wanted to say <em>hello</em> to $name.
$else:<em>Hello</em>, world!

然后运行程序之后,就可以在浏览器里输入连接地址:http://127.0.0.1:8080/?name=caimouse, 输出结果如下:

比特币源码入门教程

https://edu.csdn.net/course/detail/6998

深入浅出Matplotlib
https://edu.csdn.net/course/detail/6859

深入浅出Numpy
http://edu.csdn.net/course/detail/6149

Python游戏开发入门

python web py入门(3)-模板相关推荐

  1. python web py入门-1-web.py简介和安装

    背景 记录python web.py开发入门学习的过程,主要想通过这个入门,然后继续去学习python Django框架开发课程.目前我的个人技能状态是,稍微懂点selenium webUI自动化测试 ...

  2. python web py入门(6)-webpy在模板里使用code代码段错误的问题

    像下面这段代码在WEBPY 0.40里会发现出错: $def with (page_posts, page_count, page)$code:grace = 5range = grace * 2st ...

  3. python web py入门(4)-从数据库读取数据显示到网页

    在你开始使用数据库之前,确保你已经安装了合适的数据库访问库.比如对于MySQL数据库,使用mysql-connector客户端来连接. 下载Mysql数据并安装: 从下面的连接里下载到Mysql数据库 ...

  4. python web py入门(1)-web.py简介和安装

    1.web.py 简介 web.py是一个轻量级的python web框架,简单而且功能强大.相对flask和Django,web.py更适合初学者来学习和了解web开发的基础知识. 2.web.py ...

  5. python web py入门(2)-URL处理

    本文介绍URL映射,在介绍映射之前,我们先了解下什么是URL? URL(Uniform/Universal Resource Locator的缩写,统一资源定位符)是对可以从互联网上得到的资源的位置和 ...

  6. python web py入门-7-响应处理(下)

    前面我们介绍了响应处理的两种方式,这边学习如何从数据库获取结果.简单来说,就是从数据库查询数据并显示在前端html页面上.因为涉及到数据库,所以,我们这里先要安装一个数据库软件,这里用mysql,具体 ...

  7. python web py入门(13)- 实现发贴到论坛

    在前面已经说明白了实现登录论坛,当你进入论坛之后,一般就是想发表文章,简称为贴子,那么怎么样把你的文章从浏览器里发送给WEB服务器呢?其实这个过程还是比较复杂的,首先要在浏览器里实现一个编辑器,它是使 ...

  8. python web py入门-4-请求处理(上)

    这篇我们来介绍一下请求处理过程.其实,在前面python中requests做接口自动化的系列讲过请求和响应.服务器需要对客户端发送的请求,进行解析和处理.我们在前面文章介绍的URL映射,每次输入新的U ...

  9. python web py入门(14)- 实现从论坛里查看某一主题

    前面介绍了怎么样发贴到论坛,其实论坛之所以吸引人,是因为论坛可以让所有人围绕这一个主题进行深入的讨论和学习.因此,实现论坛里,必须有查看一个主题内容和它所有的评论,在这里就介绍这个过程的实现. 与前面 ...

最新文章

  1. 【正一专栏】亚冠抽签点评——上港令人期待
  2. r语言默认工作目录document_使用 Docker 和 Nginx 实现简单目录索引服务
  3. 浏览器还 data URI协议
  4. G1与CMS的区别是什么
  5. redis缓存雪崩和缓存穿透
  6. php如何抓取一行的内容,提取一行作为对象 - PHP 7 中文文档
  7. AD19 add pins to nets错误_为什么我认为Rust的Result错误处理方式不如Exception
  8. arcgis server mysql_ArcGIS Server 10.1发布要素服务时遇到的数据库注册问题总结 (二)...
  9. Fastlane-iOS(调研篇)
  10. java 异步处理数据格式_spring mvc对异步请求的处理
  11. [Python知识图谱] 四.Python和Gephi实现中国知网合作关系知识图谱
  12. 音视频学习(三)——sip协议
  13. android xposed安装教程,Android 10机型安装Xposed框架教程
  14. 网络工程师和网络运维工程师,有什么区别?
  15. 访问者模式---萝卜青菜各有所爱
  16. UE4 制作玻璃材质总结
  17. 嵌入式硬件 软件测试,嵌入式系统软硬件功能测试方法及性能评估研究
  18. java开发人员的小习惯
  19. Shutdown自定义自动关机软件
  20. Flex Air 实现桌面尺子(Ruler)工具

热门文章

  1. 01背包,完全背包,多重背包
  2. HTML小游戏9 —— 潜行游戏《侠盗罗宾汉》(附完整源码)
  3. sql monitor简介
  4. Linux 学习资料
  5. java 找不到方法_Java程序找不到主方法,在哪里加上呢
  6. python做excel表格代码_Python读写Excel表格
  7. 纵即逝的烟花蓄势于纸
  8. 计算机毕设(附源码)JAVA-SSM化妆品销售网站
  9. 千亿市场规模的物流SaaS平台,是发生在云端的物流信息化的二次革命
  10. Uber vs. Lyft