深入学习Django,强烈推荐视频教程《超详细讲解Django打造大型企业网站》
==========================我是华丽的分割线===================================
视图
我们的业务一般都写在 app 下的 views.py 里面,核心内容就是,定义一个函数,函数的参数必须是request对象,最后return一个HttpResponse对象或者继承自HttpResponse的对象,记住这几个要素就ok了,我们看第一个 demo:
from django.http import HttpResponse
def index(request):
return HttpResponse("这个是首页")
URL 映射:
当然你想通过路由来执行你的上面的函数,当然要通过 url 路由过来了,如下
from django.contrib import admin
from django.urls import path
from testapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index)
]
url 中添加参数:
如果你想在路由中添加一个参数,我们用查看用学生的例子,例如需求现在是通过学生id查看学生,那么路由是:
http://127.0.0.1/student/3, 代表我要查看 id 为 3 的这位同学,在 django 中我们可以把路由定义成如下这样:
http://127.0.0.1/student/<id>
urls.py 代码如下:
from django.contrib import admin
from django.urls import path
from testapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index),
path('student/<id>/',views.student), #第一种方法
path('student/detail/',views.student_detail), #第二种方法
]
views.py 代码如下:
def student(request, id):
text = "您查找的学生 id 是:%s" % id
return HttpResponse(text)
def student_detail(request):
stu_id = request.GET.get("id")
text = "您查找的学生 id 是:%s" % stu_id
return HttpResponse(text)
第二种路由的方法的参数就应该是这种了 /student/detail/?id=3
include 函数
更多的时候,我们需要为具体的业务创建 app, 同时我们也要为固定的业务指定 url,那么我们就非常需要 include 函数了
# 当前project下面的urls.py文件:
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('testapp/',include("testapp.urls"))
]
# student/urls.py文件:
from django.urls import path
from . import views
urlpatterns = [
path('',views.index),
path('/detail/<id>/',views.student)
]
Path() 函数
path()有四个参数,两个必填参数分别是 route 和 view, 另外两个可选参数 kwargs 和 name。
第一个参数 route 就是 urlpatterns 路由匹配进来的字符串
第二个参数 view 就是要执行的视图函数
第三个参数 name 就是给当前路径起个名字
第四个参数 kwargs 就是额外传递的参数,格式是字典形式
==========================我是华丽的分割线===================================
深入学习Django,强烈推荐视频教程《超详细讲解Django打造大型企业网站》