阅读 113

【在线聊天实战】02.Django是如何工作的

www.bilibili.com/video/BV1RK…

image.png

1.超文本传输协议HTTP

image.png 超文本传输协议(HTTP)中,服务器是被动的,客户端是主动的,依旧是说必须是客户端发起请求!

2.Django是如何工作的

image.png

客户端向服务端发起一个请求,在Django中有一个路由解析请求,根据这个url去判断有没有这个url的处理方法(比如web首页,有其对应的处理方法).

  • 如果存在对应的处理方法,就去执行这个处理程序,然后将要响应的内容返回给Web 服务器,服务端会将响应结果返回给客户端
  • 如果没有对应的处理方法,比如这个url地址不存在,那么就会返回一个404的错误,返回给服务器,服务器返回给客户端

这个url路由解析除了解析出地址之外,还会解析出请求方法(get,post..)和请求参数(如www.baidu.com/search?arg1=...&arg2=...&arg3......)

中间件,是在Server和Django中间做一个处理,比如可以记录请求的频率...

3.实例:Django处理请求

image.png

我们在D:\venv\django\test目录下创建一个名字为mysite的Django项目:

image.png 我们再去看看有什么文件:

image.png

  • manage.py:是Django应用的一个管理文件,通过它可以进行一些操作,比如启动Django的本地Web服务、迁移数据库、创建管理员数据库等等...

image.png mysite是一个公共的配置文件夹

  • setting.py:Django的配置
  • url.py:设置、添加路由地址
  • wsgi.py:
  • asgi.py:

ok,我们开始编写我们的django

1.urls.py中添加路由

添加前:

image.png

添加后:

image.png

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)

image.png 输入网址看一下:

image.png

可以看到,这种情况下,提示说路由配置只有/ 和 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),
]
复制代码

image.png image.png

文章分类
后端
文章标签