Django从入门到放弃
Posted sanqiansi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django从入门到放弃相关的知识,希望对你有一定的参考价值。
目录
- 基于socket手写web框架
- 基于wsgiref定义自己的web框架
- 数据库取数据,渲染页面
- 三大主流框架分析
- http协议分析
- Django下载,创建项目
基于socket手写web框架
py文件
import socket def server_run(): soc = socket.socket() soc.bind((‘127.0.0.1‘, 8008)) soc.listen(5) while True: conn, addr = soc.accept() recv_data = conn.recv(1024) print(recv_data) # 1 直接在send里写,发送给客户端 # conn.send(b‘HTTP/1.1 200 OK <h1>hello web</h1><img src="https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=5e3814acf9edab64607f4592965fc4a6/14ce36d3d539b600c0c465d0eb50352ac65cb74b.jpg"></img>‘) #2 打开一个html文件,发送给客户端 # with open(‘index.html‘,‘r‘,encoding=‘utf-8‘) as f: # data=f.read() # conn.send((‘HTTP/1.1 200 OK %s‘%data).encode(‘utf-8‘)) # 3 动态网页,字符串替换 import time now=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) print(now) with open(‘index.html‘,‘r‘,encoding=‘utf-8‘) as f: data=f.read() data=data.replace(‘@@@‘,now) conn.send((‘HTTP/1.1 200 OK %s‘%data).encode(‘utf-8‘)) conn.close() if __name__ == ‘__main__‘: server_run()
index文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h2>@@@</h2> <img src="https://gss2.bdstatic.com/9fo3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike92%2C5%2C5%2C92%2C30/sign=5e3814acf9edab64607f4592965fc4a6/14ce36d3d539b600c0c465d0eb50352ac65cb74b.jpg" alt=""> </body> </html>
基于wsgiref定义自己的web框架
wsgirefServer.py
from wsgiref.simple_server import make_server 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‘)] # 错误开头 # 1 服务器正在给我处理 # 2 成功 # 3 重定向 # 4 客户端错误 # 5 服务器错误 if __name__ == ‘__main__‘: ser=make_server(‘127.0.0.1‘,8003,run) ser.serve_forever()
url.py
from views import * urls=[ (‘/index‘,index), (‘/time‘,time), (‘/test‘,test) ]
views.py
def index(env): return ‘index‘ def time(env): return ‘time‘ def error(env): return ‘404‘ def test(env): return ‘test‘
以上是关于Django从入门到放弃的主要内容,如果未能解决你的问题,请参考以下文章