• Django(一)


    HTTP协议对于收发消息的格式要求如下图:

     

    wsgiref版返回动态的HTML文件

     1 '''
     2 根据访问的不同路径返回不同的内容
     3 实现不同的用户得到不同的HTML页面
     4 '''
     5 
     6 import time
     7 from wsgiref.simple_server import make_server
     8 
     9 
    10 def home(url):
    11     s = 'this is {} page'.format(url)
    12     return bytes(s,encoding='utf8')
    13 
    14 def index(url):
    15     return b'<h1>index page</h1>'
    16 
    17 def user(url):
    18     c_time = str(time.time())
    19     with open('user.html','r') as f:
    20         data_s = f.read()
    21         data_s = data_s.replace('@@xx@@',c_time)  #用时间戳模拟不同的用户访问
    22         return bytes(data_s,encoding='utf8')
    23 
    24 def login(url):
    25     with open('login.html','rb') as f:
    26         return f.read()
    27 
    28 url_func = [
    29     ('/index/',index),
    30     ('/home/',home),
    31     ('/user/',user),
    32     ('/login/',login),
    33 ]
    34 
    35 def run_server(environ,start_response):
    36     '''
    37     按照wsgiref的要求定义一个run_server函数
    38     :param environ: 跟请求相关的参数
    39     :param start_response:
    40     :return:
    41     '''
    42     start_response('200 OK',[('Content-Type','text/html;charset=utf8'),])
    43     # print('查看environ参数:',environ)   #查看environ参数
    44     url = environ['PATH_INFO']  #拿到用户输入的url
    45     print(url)
    46 
    47     for i in url_func:
    48         if url == i[0]:
    49             func = i[1]
    50             break
    51     else:
    52         func = None
    53 
    54     if func:
    55         msg = func(url)
    56     else:
    57         msg = b'<h1>404</h1>'
    58     return [msg,]
    59 
    60 if __name__ == '__main__':
    61     httpd = make_server('127.0.0.1',8000,run_server)
    62     print(httpd)
    63     httpd.serve_forever()

    jinja2返回动态的HTML文件

     1 '''
     2 利用jinja2进行路径切割替换
     3 '''
     4 
     5 from wsgiref.simple_server import make_server
     6 from jinja2 import Template
     7 import pymysql
     8 
     9 
    10 def home(url):
    11     s = 'this is {} page'.format(url)
    12     return bytes(s,encoding='utf8')
    13 
    14 def index(url):
    15     return b'<h1>index page</h1>'
    16 
    17 def user(url):
    18     conn = pymysql.connect(
    19         host = '127.0.0.1',
    20         port = 3306,
    21         user = 'root',
    22         password = '123456789',
    23         database = 'day61',
    24         charset = 'utf8',
    25     )
    26     cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    27     cursor.execute('select * from user')
    28     ret = cursor.fetchall()
    29     #在页面上显示出来
    30     with open('user.html','r',encoding='utf8') as f:
    31         data_s = f.read()
    32         template = Template(data_s)
    33         msg = template.render({'user_list':ret})
    34         return bytes(msg,encoding='utf8')
    35 
    36 
    37 def login(url):
    38     with open('login1.html','rb') as f:
    39         return f.read()
    40 
    41 url_func = [
    42     ('/index/',index),
    43     ('/home/',home),
    44     ('/user/',user),
    45     ('/login/',login),
    46 ]
    47 
    48 def run_server(environ,start_response):
    49     '''
    50     按照wsgiref的要求定义一个run_server函数
    51     :param environ: 跟请求相关的参数
    52     :param start_response:
    53     :return:
    54     '''
    55     start_response('200 OK',[('Content-Type','text/html;charset=utf8'),])
    56     # print('查看environ参数:',environ)   #查看environ参数
    57     url = environ['PATH_INFO']  #拿到用户输入的url
    58     # print(url)
    59 
    60     for i in url_func:
    61         if url == i[0]:
    62             func = i[1]
    63             break
    64     else:
    65         func = None
    66 
    67     if func:
    68         msg = func(url)
    69     else:
    70         msg = b'<h1>404</h1>'
    71     return [msg,]
    72 
    73 if __name__ == '__main__':
    74     httpd = make_server('127.0.0.1',8000,run_server)
    75     # print(httpd)
    76     httpd.serve_forever()

    Django命令行创建方式:

    django-admin startproject mysite

    Django基础重要的3个要素

    from django.shortcuts import HttpResponse, render, redirect

  • 相关阅读:
    【力扣】两个数组的交集
    【编译原理课程设计】词法分析程序设计
    【力扣14】最长公共前缀
    【力扣20】有效的括号
    【力扣26】删除排序数组中的重复项
    【力扣13】罗马数字转整数
    【力扣9】回文数
    【力扣7】整数反转
    【力扣1】两数之和
    golang micro client 报错500 {"id":"go.micro.client","code":408,"detail":"call timeout: context deadline exceeded","status":"Request Timeout"}
  • 原文地址:https://www.cnblogs.com/dingyutao/p/9168847.html
Copyright © 2020-2023  润新知