使用Python来上手建站比较简单
- 安装lpthw.web框架,使用pip来安装,在powershell输入"pip install lpthw.web"
- 还记得我们的工程结构吗?不过这次在"skeleton"目录下增加一个"templates"目录,用于存放html文件,再来一记结构图
- 本地服务器代码(ttweb.py):
#输出“hello world”
import web
urls = (
'/', 'index'
)
app = web.application(urls, globals())
class index(object):
def GET(self):
return "hello world"
if __name__ == "__main__":
app.run()
- 接下来我们实现复杂一点的东西,比如给输出的文字变色,改变字体大小,实现方式就是在html代码里写python语句。
1. 新建一个index1.html模板文件,代码如下,有一个问题,运行的时候需要把汉字注释删除掉,在html文件里写汉字注释的时候会报“unexpected character after line continuation character Template traceback”的错误,应该和编码格式有关系,但是改了也不对,希望有知道的朋友告诉我。
<!-- '$'和后边的python代码没有空格,变量需要放在括号里 -->
$def with (name)
<html>
<head>
<title>Easy Title</title>
</head>
<body>
<!-- 因为是在html里写python代码,所以在涉及到python语句的位置需要机上'$'符号标识出来,而涉及到引用变量的位置也需要在变量前加上'$'。 -->
$if name:
<!-- style属性的格式:各个属性是以';'分隔开 -->
I want to say hello to <em style="color: red;font-size: 5em;">$name</em>
$else:
Hello world!
</body>
</html>
2.修改tweb.py文件,注意看注释内容:
# -*- coding: utf-8 -*-
import web
urls = (
'/', 'index'
)
app = web.application(urls, globals())
# 1.web库通过待渲染文件目录名生成一个渲染对象,表明从哪里加载模板文件
render = web.template.render('templates/')
class index(object):
def GET(self):
name = 'hmx'
# 2.注意index1这个方法,是不是很熟悉,没错,index1就是我们在templates下建立的html文件的名字,必须一模一样,render才能找到相应的模板文件。
# 3.传入参数,此处有两种传入方式。1.直接render.index1(name) 2.render.index1(name = name),第一个name必须和index1.html里接收的参数名一样
return render.index1(name)
if __name__ == "__main__":
app.run()
显示效果如图: