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从入门到放弃的主要内容,如果未能解决你的问题,请参考以下文章

Django从入门到放弃

一步一步理解 python web 框架,才不会从入门到放弃 -- 简单登录页面

GO语言从入门到放弃

Volatile从入门到放弃

python全栈开发从入门到放弃之函数基础

Handler机制从入门到放弃