目录结构:除了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#importsocket#server=socket.socket()#server.bind(('127.0.0.1',8001))#server.listen(5)#whileTrue:#conn,client_address=server.accept()#data=conn.recv(1024)fromwsgiref.simple_serverimportmake_server#fromurlimporturls#fromviewsimporterror#env:已经把下面这些封装好以后,把类似my_diango.py中的'/index'路径从env中取出来即可,这个env既是字典,也是对像。(把请求头切分好以后,放进字典里面)#data=conn.recv(1024)#conn.send(b'HTTP/1.1200OK\r\nContent-Type:text/html\r\n\r\n')fromurlimporturlsfromviewsimporterrordefrun(env,response):print(env)response("200ok",[('Content-type','text/html')])position=env['PATH_INFO']func=Noneforurlinurls:ifposition==url[0]:func=url[1]breakiffunc: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

fromviewsimport*urls=[('/index',index),('/time',time),('/test',test),('/user',user),]

views.py

importdatetimefromjinja2importTemplateimportpymysqldefindex(env):withopen('templates/index.html','r')asf:data=f.read()returndatadeftime(env):ctime=datetime.datetime.now().strftime('%Y-%m-%d%X')withopen('templates/time.html','r')asf:data=f.read()data=data.replace('@@time@@',ctime)returndatadeferror(env):return'404'deftest(env):withopen('templates/test.html','r')asf:data=f.read()tem=Template(data)response=tem.render(user={'name':'s_jun','age':18})returnresponsedefuser(env):conn=pymysql.connect(host='127.0.0.1',port=3306,user='root',db='db2',password='mariadb.123')#获得游标,并且查询结果数据是字典格式cur=conn.cursor(pymysql.cursors.DictCursor)#执行sqlcur.execute('select*fromuser')#获取全部查询结果dic=cur.fetchall()print(dic)withopen('templates/user.html','r')asf:data=f.read()tem=Template(data)response=tem.render(user_list=dic)returnresponse

index.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>index</title></head><body><h2>h2</h2><h3>h3</h3><imgsrc="http://img4.imgtn.bdimg.com/it/u=1565006133,780611353&fm=26&gp=0.jpg"></body></html>

templates目录下的html文件

index.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>index</title></head><body><h2>h2</h2><h3>h3</h3><imgsrc="http://img4.imgtn.bdimg.com/it/u=1565006133,780611353&fm=26&gp=0.jpg"></body></html>

test.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>test</title></head><body>{{user.name}}{{user.age}}</body></html>

time.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>time</title></head><body>@@time@@</body></html>

user.html

<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><tableborder="1"><thead><tr><th>id</th><th>name</th><th>password</th></tr></thead><tbody>{%foruserinuser_list%}<tr><td>{{user.id}}</td><td>{{user.name}}</td><td>{{user.password}}</td></tr>{%endfor%}</tbody></table></body></html>