下半章 - Django路由配置与视图函数views

一、主路由与分布式路由匹配视图函数views

1、主路由匹配视图函数views

  • 在主目录下urls.py
urlpatterns = [
    path('page/2021', views.page_2021),
]

2、分布式匹配视图函数views

  • 首先我们创建一个新的文件app,项目目录下终端输入下面命令
python3 manage.py startapp user
  • 然后主项目目录下会多一个user文件夹


    image.png
  • 立刻去settings.py配置文件INSTALLED_APPS下增加自己创建的app名称,记住每次创建一个要立马在这里增加一下app名称

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'user',    #  这个是我新增的
]
  • 在主目录下urls.py写分布式路由匹配
from django.urls import path, include

urlpatterns = [
    path('users/', include('user.urls'))
]
  • 然后在user文件下创建urls.py文件,并且写分布式路由匹配
from django.urls import path
from . import views

urlpatterns = [
    # 127.0.0.1:8000/users/login
    path('login', views.login),
]

二、视图函数处理与视图类的处理

1、基于视图函数的处理方式 FBV(function base view)

  • 同一个url,使用一个视图函数去处理多个类型请求。由于我们对代码的要求,一个函数处理一件事情,FBV不太合理,处理这种情况。
from django.http import HttpResponse

def login(request):
        if request.method == "GET":
                return HttpResponse("hello GET")
        elif request.method == "POST":
                return HttpResponse("hello POST")
        elif request.method == "PUT":
                return HttpResponse("hello PUT")

2、基于视图类的处理方式 CBV(class base view)

  • 可以让 url 对应一个视图类,不同的请求方法,对应视图类中的方法。只不过,视
    图类中的方法用请求方法的小写来表示,而且要严格一致。
  • 视图类继承自Django的视图类 from django.views import View 当接收到视图类中没
    有定义的方法时,视图类会返回给浏览器一个405响应
from django.views import View

class UsersView(View):
        def get(self, request):
                return HttpResponse("hello get")
        def post(self, request):
                return HttpResponse("hello post")
        def put(self, request):
                return HttpResponse("hello put")
        def delete(self, request):
                return HttpResponse("hello delete")
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容