Django

Posted dingyutao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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(@@[email protected]@,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

技术分享图片

 

以上是关于Django的主要内容,如果未能解决你的问题,请参考以下文章

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

Django REST框架--认证和权限

如何在 Django 中显式重置模板片段缓存?

使用 Django 模板作为片段

python 通过django片段很多很多

JavaScript 片段在 Django 模板中不起作用