主要内容:
1. 视图函数的初步使用 2. MySQL配置的一些报错问题
一、 视图函数的初步使用
可能刚接触Django框架的朋友不理解视图函数是啥,其实在之前的Flask框架中也是有这一概念的。
在Django中,通过浏览器去请求一个页面时,此时使用视图函数来处理这个请求,视图函数处理完成之后,就要浏览器返回页面内容。
1. 定义视图函数
如何来定义一个视图函数呢?
视图函数定义在view.py文件中:
视图函数必须带一个参数request,进行处理之后,需要返回一个HttpResponse的类对象,里面包含的参数就是返回给浏览器显示的内容。
2.URL配置
在django2.0 以上的版本中,默认使用的是path转换器,我们来通过一个小例子来看看Django的Url配置。
下面是我们的视图函数:
接着我们去urls.py文件:
我们配置完成之后可以通过
python manage.py runserver
来启动服务器,查看相应路径 http://127.0.0.1:8000/index/
发现正是我们在视图函数中所输出的数据。
当然,有关URL的配置还涉及到了转换器,转换器是什么呢?简单来说就是能够路由提取的参数 。在后面这篇Flask系列的文章中我也讲到过转换器是啥,小白学Flask第三天| 今天把视图函数的路由给讲清楚!
二、我这里给出官方的例子:
from django.urls import path from . import views urlpatterns = [ path('articles/2003/', views.special_case_2003), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.article_detail), ]
1.注意:
-
要从 URL 中取值,使用尖括号。
-
捕获的值可以选择性地包含转换器类型。比如,使用 来捕获整型参数。如果不包含转换器,则会匹配除了 / 外的任何字符。
-
这里不需要添加反斜杠,因为每个 URL 都有。比如,应该是 articles 而不是 /articles 。
2.一些请求的例子:
-
/articles/2005/03/ 会匹配 URL 列表中的第三项。Django 会调用函数 views.month_archive(request, year=2005, month=3) 。
-
/articles/2003/ 会匹配列表中的第一项,而不是第二项,因为这些模式是按顺序测试的,而第一项是第一个通过的测试。随意利用命令来插入类似这样的特殊情况。在这里,Django将调用 views.special_case_2003(request)
-
/articles/2003 不会匹配任何项,因为每一个匹配需要在最后加一个斜杠。
-
/articles/2003/03/building-a-django-site/ 会匹配 URL 列表中的最后一项。Django 会调用函数 views.article_detail(request, year=2003, month=3, slug="building-a-django-site") 。
转换器这里不过多的解释,需要大家牢牢记住,这里提供给大家官方的案例:
https://docs.djangoproject.com/zh-hans/3.0/topics/http/urls/
以及我在Flask系列中解释过的转换器,整体的思路是一样的。