码迷,mamicode.com
首页 > 其他好文 > 详细

Django从入门到放弃

时间:2018-11-05 15:15:56      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:index   encoding   项目   com   pat   ati   view   错误   title   

目录

  • 基于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\r\n\r\n<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\r\n\r\n%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\r\n\r\n%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从入门到放弃

标签:index   encoding   项目   com   pat   ati   view   错误   title   

原文地址:https://www.cnblogs.com/sanqiansi/p/9909070.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!