说明一下web的工作原理,怎么跑自己拷贝代码,直接运行即可。
server.py
# __author__ = 'Administrator'
# 从wsgiref模块导入
from wsgiref.simple_server import make_server
# 导入自己的application
from hello import application
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application
httped = make_server("",8000,application);
print "http start on port 8000";
# 监听http请求
httped.serve_forever();
hello.py
# -*- coding:utf-8 -*-
# __author__ = 'Administrator'
# 从environ里读取PATH_INFO
# 入用户名作为URL的一部分
from time import time
def f1():
f = open("template/index.html");
data = f.read();
f.close();
db_str = str(time());
data = data.replace("((abc))",db_str);
return data;
# jinjia2模板
def f2():
from jinja2 import Template
f = open("template/new.html");
result = f.read();
template = Template(result);
# 接收值进行特殊的替换
data = template.render(names="names_liyongming",name_list=['li','zhang','zhao']);
return data.encode("UTF-8");
url = {
"/index":f1,
"/new":f2,
}
def application(environ,start_response):
start_response("200 OK",[("Content-type","text/html")]);
path = environ['PATH_INFO'];
# print url.keys();
if path in url.keys():
path_name = url[path];
re =path_name();
return re;
else:
return "404";
# return "<h1>hello,web ----> %s!</h1>" % (environ['PATH_INFO'][1:] or "liyongming!");
new.html
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
{{names}}
<hr>
<ul>
{% for i in name_list%}
<li>{{i}}</li>
{% endfor %}
</ul>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<h1 style="color:red;">index</h1>
<hr>
hello ((abc))
</body>
</html>