Django初识

一.1.Django基础

安装:
pip3 install django==1.11.10 -i https://pypi.tuna.tsinghua.edu.cn/simple


创建:
第一种:
django-admin startproject mysite

启动:
python3 manage.py runserver 127.0.0.1:8090

第二种:
pycharm创建


目录介绍:
mysite:
settings.py : 用户自定义的各种配置
urls.py : 路由文件
wsgi.py : 启动socket服务端的 文件

mange.py: 管理文件 python mange.py 各种命令


js, css, img : 静态 文件

以后创建django完成之后:

a. 配置末班文件路径:
'DIRS': [os.path.join(BASE_DIR, 'templates')]

b. 配置静态资源的文件路径:
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'), (逗号不能少)
)

c. 注释中间件
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

写业务逻辑的话:

uri和函数的对应关系:
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^index/', index),
]

业务逻辑函数:
def index(request):
return render(request, "index.html")

 

一.web的请求流程

当我们在浏览器中输入一个url地址的时候, 按下回车的那一刹那, 描述一下具体的过程

DNS: 记录着 域名以及IP的对应关系

根DNS服务器
顶级DNS服务器
权威DNS服务器
二级域名的DNS服务器

Http协议:
请求首行
请求头:
GET / HTTP/1.1
Host: 127.0.0.1:8080 (主机名)
Connection: keep-alive (保持链接)
Cache-Control: max-age=0 (缓存不失效)
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Token: bdsjalbdjsalbdjsa /r/n/r/n
请求体:
bdsabdjsabjddas

响应头:
HTTP/1.1 200 OK

响应体:
自己看到的内容

二.字符串与字节的切换

字符串和字节的转换:
>>> s = "hello"
>>> s
'hello'
>>> bytes(s,encoding='utf-8')
b'hello'
>>> b = bytes(s,encoding='utf-8')
>>> str(b, encoding='utf-8')

三.状态码

状态码:(*****************************)

2XX: 200 (ok)

3XX: 302 304

4XX: 404(not found) 403(forbidden 禁止访问)

5XX: 500 (服务端代码错误) 502 (网关错误 bad gateway)

四.自定义简单web框架

需求:
想要通过输入不同的 url, 获得不一样的相应内容


路由系统:
routes = [
('/xxx', f1),
('/ooo', f2),
('/hhh', f3)
]

def f1():
return b'this is xxxx'

def f2():
return b'this is oooo'


#################### 总结 ########
自定义的web框架:
a. sokect 服务端
b. uri 和 函数的 对应关系

路由系统

c. 将html代码和mysql的数据进行融合 (自己定制规则 , 使用第三方的工具)

模板引擎渲染

五.web框架分类:

第一种维度分类:
- a,b,c ----> tornado
- a(用第三方), b, c ----> django wsgiref uwsgi
- a(第三方),b, c(第三方) -----》 flask


第二种维度:

- django
- 其他

posted @ 2019-07-09 21:56  坚信会有奥特曼~  阅读(122)  评论(0)    收藏  举报