一、python manage.py startapp 子应用名称

在子应用中新建一个urls.py文件,作为子路由

from django.urls import path
from testdjango.views import index

urlpatterns = [
    path('', index)
]

views.py里创建一个视图

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello,Django")

在主路由里的urls.py文件中,添加path,使用include

from django.contrib import admin
from django.urls import path, include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('projects/', include('testdjango.urls'))
]

然后访问http://127.0.0.1:8000/projects/

路径projects先从父应用里urls.py里找,匹配后,从子应用的urls.py文件里找

路由

每一个应用(模块)都会维护一个子路由(当前应用的路由信息)

跟主路由一样,也是从上到下进行匹配

能匹配上,则执行path第二个参数指定的视图,匹配不上抛出404

Django里是MVT模式,

Django创建子应用及MVT模式_python

M是Model,跟Java里的MVC中的M是一样的,负责与数据库进行交互,进行数据处理

V是View,跟Java里的MVC中C的功能一样,是控制器,接收请求,进行业务处理,返回响应

T是Template,跟Java里的MVC中的V功能一样,是构造返回的html页面的。

两种开发模式

前后端不分离

前后端分离

安装git

.gitignore文件

使用类视图的方式

在子应用里新建一个views

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse


from django.views import View

# 类视图方式,创建不同请求方法


class IndexView(View):
    def get(self, request):
        return HttpResponse("GET请求,Hello Index")

    def post(self, request):
        return HttpResponse("POST请求,Hello Index")

    def put(self, request):
        return HttpResponse("PUT请求,Hello Index")

在urls里修改path,如果路径匹配,映射到类视图上

from django.contrib import admin
from django.urls import path

from testdjango import views

# 导入views视图里的类视图


urlpatterns = [
    path('index/', views.IndexView.as_view())
]

使用postman发起get请求和post请求

GET请求

Django创建子应用及MVT模式_后端_02

Django创建子应用及MVT模式_MVC_03

Django创建子应用及MVT模式_django_04

可以看出来request中的GET接收了前端的入参,使用request.GET.getlist(’username‘)获取值 

POST请求

Django创建子应用及MVT模式_Java_05

Django创建子应用及MVT模式_python_06

 

Django创建子应用及MVT模式_MVC_07

 通过断点调试,可以看到request里POST里接收了请求的入参,可以使用request.POST.get('username')方式获取字典的值。

返回json格式的数据的时候,用django自带的一个JsonResponse(data=)返回数据

class IndexView(View):
    def get(self, request):
        datas = {
            "username": "test",
            "age": 12
        }

        # return HttpResponse("GET请求Hello Index")
        return JsonResponse(data=datas)