您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
目录结构:除了templates目录下的html文件,其他文件都是属于平行关系
C:.
│ index.html
│ url.py
│ views.py
│ wsgirefServer.py
├───templates
│ index.html
│ test.html
│ time.html
│ user.html
wsgirefServer.py
# make_server : 类似下面的代码,把这些封装好以后,成了 make_server
# import socket
# server=socket.socket()
# server.bind(('127.0.0.1',8001))
# server.listen(5)
# while True:
# conn,client_address=server.accept()
# data=conn.recv(1024)
from wsgiref.simple_server import make_server
# from url import urls
# from views import error
# env :已经把下面这些封装好以后,把类似my_diango.py 中的'/index' 路径 从env中取出来即可,这个env 既是字典,也是对像。(把请求头切分好以后,放进字典里面)
# data = conn.recv(1024)
# conn.send(b'HTTP/1.1 200 OK\r\nContent-Type:text/html\r\n\r\n')
from url import urls
from views import error
def run(env, response):
print(env)
response("200 ok", [('Content-type', 'text/html')])
position = env['PATH_INFO']
func = None
for url in urls:
if position == url[0]:
func = url[1]
break
if func:
response = func(env)
else:
response = error(env)
return [response.encode('utf-8'), ]
if __name__ == '__main__':
server = make_server('127.0.0.1', 8003, run) # run 相当于一个装饰器,在run函数之前做了件事,运行run 后,又在run函数之前做了件事,固定用法
server.serve_forever()url.py
from views import *
urls = [
('/index', index),
('/time', time),
('/test', test),
('/user', user),
]views.py
import datetime from jinja2 import Template import pymysql def index(env): with open('templates/index.html', 'r') as f: data = f.read() return data def time(env): ctime = datetime.datetime.now().strftime('%Y-%m-%d %X') with open('templates/time.html', 'r') as f: data = f.read() data = data.replace('@@time@@', ctime) return data def error(env): return '404' def test(env): with open('templates/test.html', 'r') as f: data = f.read() tem = Template(data) response = tem.render(user={'name': 's_jun', 'age': 18}) return response def user(env): conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', db='db2', password='mariadb.123') # 获得游标,并且查询结果数据是字典格式 cur = conn.cursor(pymysql.cursors.DictCursor) # 执行sql cur.execute('select * from user') # 获取全部查询结果 dic = cur.fetchall() print(dic) with open('templates/user.html', 'r') as f: data = f.read() tem = Template(data) response = tem.render(user_list=dic) return response
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <h2>h2</h2> <h3>h3</h3> <img src="http://img4.imgtn.bdimg.com/it/u=1565006133,780611353&fm=26&gp=0.jpg"> </body> </html>
templates目录下的html文件
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>index</title> </head> <body> <h2>h2</h2> <h3>h3</h3> <img src="http://img4.imgtn.bdimg.com/it/u=1565006133,780611353&fm=26&gp=0.jpg"> </body> </html>
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
{{user.name}}
{{user.age}}
</body>
</html>time.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>time</title> </head> <body> @@time@@ </body> </html>
user.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table border="1">
<thead>
<tr>
<th>id</th>
<th>name</th>
<th>password</th>
</tr>
</thead>
<tbody>
{% for user in user_list%}
<tr>
<td>{{user.id}}</td>
<td>{{user.name}}</td>
<td>{{user.password}}</td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。