免费分享,平时搬砖,周末会录制匹配的视频。
配套视频地址:https
接着上篇博客的项目,今天继续学习django的视图, 只考虑前后端分离模式也就是只返回json数据,其它的请自学习
其中view就是python的视图,v层,核心的代码逻辑都是写在view中
测试项目需要用到postman,下载:
链接:https://pan.baidu.com/s/1yMSKdXBi7kCffJb6VAi_9w 提取码:35sy
1.小demo入门
流程应该很清晰,就是根据在浏览器或者小程序等输入一个url(可以传递参数)----根据url映射到对应的方法代码(获取请求参数)----根据参数去models层查询数据库获得数据----返回给调用者
首先要处理的就是url映射
整个项目的总urls配置:包名同名的urls
from django.contrib import admin
from django.urls import path, re_path, include # 1.导入re_path(正则表达式) 2.include(为了引入其它urls)
urlpatterns = [
path('admin/', admin.site.urls),
# r表示里面写的正则表达式 ^表示匹配任意 表示字符串不转义,这样在正则表达式中使用 \ 只写一个就可以
# 因为一个项目里面有很多应用 比如pay 物流等 为了避免冲突 每个应用的url映射 写在自己的urls里面
# 为每个路径改命名空间,逻辑隔离 方便后续管理
re_path(r'^', include(("pay.urls", "pay"), namespace="pay")),
]
当访问任意路径会,进入pay.urls pay.urls配置
from django.contrib import admin
from django.urls import path, re_path, include
from .views import goodlist # .表示相对目录 goodlist是当前views下面的方法名 下面有定义
urlpatterns = [
# 不能在开始加反斜杠,推荐在结束加反斜杠
re_path(r'^goodList/$', goodlist), # 表示访问goodList 就执行goodlist方法
]
views.py
from django.http import JsonResponse
# Create your views here.
# request参数会由django帮我们自动传入
def goodlist(request):
json = {
# 定义一个json
'name': 'zhangsan',
'age': 10
}
# 使用上面导入的JsonResponse返回json数据
return JsonResponse(json,safe=False)
运行python manager.py runserver
访问http://localhost:8000/goodList 即可查看数据
2.url匹配规则
2.1url的自带匹配转换器
from django.urls import converters
点击converters,进入convserters.py
DEFAULT_CONVERTERS = {
'int': IntConverter(),
'path': PathConverter(),
'slug': SlugConverter(),
'str': StringConverter(),
'uuid': UUIDConverter(),