一、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模式,
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请求
可以看出来request中的GET接收了前端的入参,使用request.GET.getlist(’username‘)获取值
POST请求
通过断点调试,可以看到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)