1.超文本传输协议HTTP
超文本传输协议(HTTP)中,服务器是被动的,客户端是主动的,依旧是说必须是客户端发起请求!
2.Django是如何工作的
客户端向服务端发起一个请求,在Django中有一个路由解析请求,根据这个url去判断有没有这个url的处理方法(比如web首页,有其对应的处理方法).
- 如果存在对应的处理方法,就去执行这个处理程序,然后将要响应的内容返回给Web 服务器,服务端会将响应结果返回给客户端
- 如果没有对应的处理方法,比如这个url地址不存在,那么就会返回一个404的错误,返回给服务器,服务器返回给客户端
这个url路由解析除了解析出地址之外,还会解析出请求方法(get,post..)和请求参数(如www.baidu.com/search?arg1=…&arg2=…&arg3……)
中间件,是在Server和Django中间做一个处理,比如可以记录请求的频率…
3.实例:Django处理请求
我们在D:\venv\django\test目录下创建一个名字为mysite的Django项目:
我们再去看看有什么文件:
manage.py
:是Django应用的一个管理文件,通过它可以进行一些操作,比如启动Django的本地Web服务、迁移数据库、创建管理员数据库等等…
mysite是一个公共的配置文件夹:
setting.py
:Django的配置url.py
:设置、添加路由地址wsgi.py
:asgi.py
:
ok,我们开始编写我们的django
1.urls.py中添加路由
添加前:
添加后:
2.urls.py中添加对应的处理方法
from django.contrib import admin
from django.urls import path
def home(request):
return 'Hello World'
urlpatterns = [
path('/',home,name='home'), #第三个参数也可以不写,是别名
path('admin/', admin.site.urls),
]
复制代码
上面这个代码是错误的,我们待会看看结果
3.启动django的本地web服务(python manage.py runserver)
输入网址看一下:
可以看到,这种情况下,提示说路由配置只有/ 和 admin/,而没有我们输入的这个url。这个错误的原因是,首页不是/,而是一个空的字符串。
而且还有一个错,就是我们的处理函数是直接return ‘Hello World’,这种写法是不对的
ok,我们修改这两个错误,修改后如下:
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
def home(request):
return HttpResponse('Hello World')
urlpatterns = [
path('',home,name='home'), #第三个参数也可以不写,是别名
path('admin/', admin.site.urls),
]
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END