zoukankan      html  css  js  c++  java
  • Django入门

    通过socket入门html

    代码实现:

    socket 1

    import socket
    import re
    from threading import Thread
    
    server = socket.socket()
    server.bind(('127.0.0.1',8899))
    server.listen()
    
    while 1:
        conn,addr = server.accept()
    
        def home(conn):
            with open('test.html','rb') as f:
                data = f.read()
            conn.send(data)
            conn.close()
    
        def nofount(conn):
            conn.send(b'not found 404')
            conn.close()
    
        urlpatterns = [
            ('/',home),
        ]
    
        b_msg = conn.recv(1024)
        path = b_msg.decode('utf-8').split(' ')[1]
        print(path)
        conn.send(b'HTTP/1.1 200 ok
    
    ')
    
        for url in urlpatterns:
            if path == url[0]:
                t = Thread(target=url[1],args=(conn,))
                t.start()
                break
    
        else:
            t = Thread(target=nofount, args=(conn,))
            t.start()
    

    socket 2

    import socket
    from threading import Thread
    
    sk = socket.socket()
    sk.bind(('127.0.0.1',8001))
    sk.listen()
    def func1(conn):
        conn.send(b'HTTP/1.1 200 ok
    content-type:text/html
    charset:utf-8
    
    ')
        with open('test.html','rb') as f:
            data = f.read()
        conn.send(data)
        conn.close()
    
    def func2(conn):
        conn.send(b'HTTP/1.1 200 ok
    
    ')
        with open('sdf','rb') as f:
            pic_data = f.read()
        conn.send(pic_data)
        conn.close()
    
    def func3(conn):
        conn.send(b'HTTP/1.1 200 ok
    
    ')
        with open('test.css','rb') as f:
            css_data = f.read()
        conn.send(css_data)
        conn.close()
    
    def func5(conn):
        conn.send(b'HTTP/1.1 200 ok
    
    ')
        with open('test.js', 'rb') as f:
            js_data = f.read()
        conn.send(js_data)
        conn.close()
    
    def func4(conn):
        conn.send(b'HTTP/1.1 200 ok
    
    ')
        with open('wechat.ico', 'rb') as f:
            ico_data = f.read()
        conn.send(ico_data)
        conn.close()
    
    l1 = [
        ('/', func1),
        ('/meinv.png',func2),
        ('/test.css',func3),
        ('/wechat.ico',func4),
        ('/test.js',func5),
    ]
    
    def fun(path, conn):
        for i in l1:
            if i[0] == path:
                t = Thread(target=i[1], args=(conn,))
                t.start()
    
    while 1:
        conn, addr = sk.accept()
        b_msg = conn.recv(1024)
        str_msg = b_msg.decode('utf-8')
        path = str_msg.split('
    ')[0].split(' ')[1]
        print(path)
    
        fun(path, conn)
    

    socket 3

    import socket
    sk = socket.socket()
    sk.bind(('127.0.0.1',8080))
    sk.listen()
    
    def index(url):
        with open("test.html","r",encoding='utf8') as f:
            s = f.read()
        return bytes(s,encoding='utf8')
    
    def home(url):
        with open('./html/form.html','r',encoding='utf8') as f:
            s = f.read()
        return bytes(s, encoding="utf8")
    
    list1 = [
        ("/index/", index),
        ("/home/", home),
    ]
    
    while 1:
        conn, add = sk.accept()
        data = conn.recv(8096)
        data = str(data, encoding="utf8")
        data1 = data.split('
    ')[0]
        url = data1.split()[1]
        conn.send(b'HTTP/1.1 200 OK
    
    ')
        func = None
        for i in list1:
            if i[0] == url:
                func = i[1]
                break
        if func:
            response = func(url)
        else:
            response = b'404 not found'
    
        conn.send(response)
        conn.close()
    

    socket 4

    import socket
    import time
    
    sk = socket.socket()
    sk.bind(('127.0.0.1',8080))
    sk.listen()
    
    def index(url):
        with open('test.html','r',encoding='utf8') as f:
            s = f.read()
            now = str(time.time())
            s = s.replace("{{x}}",now)
        return bytes(s, encoding='utf8')
    
    def home(url):
        with open("./html/test.html",'r',encoding='utf8') as f:
            s = f.read()
        return bytes(s, encoding='utf8')
    
    list1 = [
        ("/index/",index),
        ("/home/", home),
    ]
    
    while 1:
        conn, add = sk.accept()
        data = conn.recv(8096)
    
        data = str(data, encoding='utf8')
        data1 = data.split("
    ")[0]
        url = data1.split(' ')[1]
        conn.send(b"HTTP/1.1 200 OK
    
    ")
        func = None
        for i in list1:
            if i[0] == url:
                func = i[1]
                break
        if func:
            response = func(url)
        else:
            response = b'404 not found!'
    
        conn.send(response)
        conn.close()
    
    

    通过wsgiref实现网络访问

    from wsgiref.simple_server import make_server
    
    def application(environ, start_response):
        """
    
        :param environ:
        :param start_response:
        :return:
        """
        start_response('200 OK', [('Content-Type', 'text/html'),('k1','v1')])
        print(environ['PATH_INFO'])
        return [b'<h1>Hello, web!</h1>']
    
    httpd = make_server('127.0.0.1',8080,application)
    
    httpd.serve_forever()
    

    通过jinja2模块渲染页面

    from wsgiref.simple_server import make_server
    from jinja2 import Template
    
    def index():
        with open('test.html','r',encoding='utf-8') as f:
            data = f.read()
        template = Template(data)
        ret = template.render({"name":'alex','hobby':'eat'})
        return [bytes(ret, encoding='utf8')]
    
    URL_LIST = [
        ('/index/', index)
    ]
    
    def run_server(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/html'),('k1','v1')])
        url = environ['PATH_INFO']
        func = None
        for i in URL_LIST:
            if i[0] == url:
                func = i[1]
                break
        if func:
            return func()
        else:
            return [bytes('404没有该页面',encoding='utf8')]
    
    if __name__ == '__main__':
        httpd = make_server('',8000,run_server)
        httpd.serve_forever()
    
  • 相关阅读:
    CentOS 6.5 下源码搭建LAMP环境
    CentOS 6.5 下MySql主从、主主配置
    js基础梳理内存空间
    js基础梳理如何理解作用域和作用域链?
    js基础梳理究竟什么是变量对象,什么是活动对象?
    js基础梳理究竟什么是执行上下文栈(执行栈),执行上下文(可执行代码)?
    python作用域解析
    expect简单自动交互用于密码、命令输入
    使用pyinstaller打包多个py文件为一个EXE文件
    python*args和**kwargs作用和区别
  • 原文地址:https://www.cnblogs.com/alex3174/p/11573977.html
Copyright © 2011-2022 走看看