Django入门

通过socket入门html

代码实现:

socket 1

1import socket 2import re 3from threading import Thread 4 5server = socket.socket() 6server.bind(('127.0.0.1',8899)) 7server.listen() 8 9while 1: 10 conn,addr = server.accept() 11 12 def home(conn): 13 with open('test.html','rb') as f: 14 data = f.read() 15 conn.send(data) 16 conn.close() 17 18 def nofount(conn): 19 conn.send(b'not found 404') 20 conn.close() 21 22 urlpatterns = [ 23 ('/',home), 24 ] 25 26 b_msg = conn.recv(1024) 27 path = b_msg.decode('utf-8').split(' ')[1] 28 print(path) 29 conn.send(b'HTTP/1.1 200 ok\r\n\r\n') 30 31 for url in urlpatterns: 32 if path == url[0]: 33 t = Thread(target=url[1],args=(conn,)) 34 t.start() 35 break 36 37 else: 38 t = Thread(target=nofount, args=(conn,)) 39 t.start()

socket 2

1import socket 2from threading import Thread 3 4sk = socket.socket() 5sk.bind(('127.0.0.1',8001)) 6sk.listen() 7def func1(conn): 8 conn.send(b'HTTP/1.1 200 ok\r\ncontent-type:text/html\r\ncharset:utf-8\r\n\r\n') 9 with open('test.html','rb') as f: 10 data = f.read() 11 conn.send(data) 12 conn.close() 13 14def func2(conn): 15 conn.send(b'HTTP/1.1 200 ok\r\n\r\n') 16 with open('sdf','rb') as f: 17 pic_data = f.read() 18 conn.send(pic_data) 19 conn.close() 20 21def func3(conn): 22 conn.send(b'HTTP/1.1 200 ok\r\n\r\n') 23 with open('test.css','rb') as f: 24 css_data = f.read() 25 conn.send(css_data) 26 conn.close() 27 28def func5(conn): 29 conn.send(b'HTTP/1.1 200 ok\r\n\r\n') 30 with open('test.js', 'rb') as f: 31 js_data = f.read() 32 conn.send(js_data) 33 conn.close() 34 35def func4(conn): 36 conn.send(b'HTTP/1.1 200 ok\r\n\r\n') 37 with open('wechat.ico', 'rb') as f: 38 ico_data = f.read() 39 conn.send(ico_data) 40 conn.close() 41 42l1 = [ 43 ('/', func1), 44 ('/meinv.png',func2), 45 ('/test.css',func3), 46 ('/wechat.ico',func4), 47 ('/test.js',func5), 48] 49 50def fun(path, conn): 51 for i in l1: 52 if i[0] == path: 53 t = Thread(target=i[1], args=(conn,)) 54 t.start() 55 56while 1: 57 conn, addr = sk.accept() 58 b_msg = conn.recv(1024) 59 str_msg = b_msg.decode('utf-8') 60 path = str_msg.split('\r\n')[0].split(' ')[1] 61 print(path) 62 63 fun(path, conn)

socket 3

1import socket 2sk = socket.socket() 3sk.bind(('127.0.0.1',8080)) 4sk.listen() 5 6def index(url): 7 with open("test.html","r",encoding='utf8') as f: 8 s = f.read() 9 return bytes(s,encoding='utf8') 10 11def home(url): 12 with open('./html/form.html','r',encoding='utf8') as f: 13 s = f.read() 14 return bytes(s, encoding="utf8") 15 16list1 = [ 17 ("/index/", index), 18 ("/home/", home), 19] 20 21while 1: 22 conn, add = sk.accept() 23 data = conn.recv(8096) 24 data = str(data, encoding="utf8") 25 data1 = data.split('\r\n')[0] 26 url = data1.split()[1] 27 conn.send(b'HTTP/1.1 200 OK\r\n\r\n') 28 func = None 29 for i in list1: 30 if i[0] == url: 31 func = i[1] 32 break 33 if func: 34 response = func(url) 35 else: 36 response = b'404 not found' 37 38 conn.send(response) 39 conn.close()

socket 4

1import socket 2import time 3 4sk = socket.socket() 5sk.bind(('127.0.0.1',8080)) 6sk.listen() 7 8def index(url): 9 with open('test.html','r',encoding='utf8') as f: 10 s = f.read() 11 now = str(time.time()) 12 s = s.replace("{{x}}",now) 13 return bytes(s, encoding='utf8') 14 15def home(url): 16 with open("./html/test.html",'r',encoding='utf8') as f: 17 s = f.read() 18 return bytes(s, encoding='utf8') 19 20list1 = [ 21 ("/index/",index), 22 ("/home/", home), 23] 24 25while 1: 26 conn, add = sk.accept() 27 data = conn.recv(8096) 28 29 data = str(data, encoding='utf8') 30 data1 = data.split("\r\n")[0] 31 url = data1.split(' ')[1] 32 conn.send(b"HTTP/1.1 200 OK\r\n\r\n") 33 func = None 34 for i in list1: 35 if i[0] == url: 36 func = i[1] 37 break 38 if func: 39 response = func(url) 40 else: 41 response = b'404 not found!' 42 43 conn.send(response) 44 conn.close() 45

通过wsgiref实现网络访问

1from wsgiref.simple_server import make_server 2 3def application(environ, start_response): 4 """ 5 6 :param environ: 7 :param start_response: 8 :return: 9 """ 10 start_response('200 OK', [('Content-Type', 'text/html'),('k1','v1')]) 11 print(environ['PATH_INFO']) 12 return [b'<h1>Hello, web!</h1>'] 13 14httpd = make_server('127.0.0.1',8080,application) 15 16httpd.serve_forever()

通过jinja2模块渲染页面

1from wsgiref.simple_server import make_server 2from jinja2 import Template 3 4def index(): 5 with open('test.html','r',encoding='utf-8') as f: 6 data = f.read() 7 template = Template(data) 8 ret = template.render({"name":'alex','hobby':'eat'}) 9 return [bytes(ret, encoding='utf8')] 10 11URL_LIST = [ 12 ('/index/', index) 13] 14 15def run_server(environ, start_response): 16 start_response('200 OK', [('Content-Type', 'text/html'),('k1','v1')]) 17 url = environ['PATH_INFO'] 18 func = None 19 for i in URL_LIST: 20 if i[0] == url: 21 func = i[1] 22 break 23 if func: 24 return func() 25 else: 26 return [bytes('404没有该页面',encoding='utf8')] 27 28if __name__ == '__main__': 29 httpd = make_server('',8000,run_server) 30 httpd.serve_forever()
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )