视图
视图(view),主要用来处理逻辑,即接收请求,进行处理并返回.
创建视图
我们使用函数来创建视图,函数新增在应用views文件中,函数名来源于我们urls中设置的路由
所以我们需要先创建一个路由,在项目urls中**+=**一个urlpatterns,注意:不要设置成等于,因为他是一个列表,我们得追加,不要把他覆盖了!
这里我们设置的path中的内容为path(‘路由地址’,路由名字)
这里的路由名字我们会在视图中用到,回到我们的应用中的views文件,创建一个函数,名字需要与刚新增的一致,然后继承request,这里的request不是接口测试用的啊注意注意
视图函数中返回值就是我们在上面设置的路由路径中可以看到的东西,比如我现在是一个html文件,我在当前服务网址中加上/home路径就可以看到一个html文件,而这个html文件我们通常保存在templates(模板)文件夹中,在render函数中作为传参传入。
视图常用函数
常用的django视图函数包括
1.HttpResponse:用于返回普通的文本内容或者是HTML代码。
#HttpResponse 类用于构建 HTTP 响应对象,需要传递一个参数:响应体
(response body)。如果需要添加 HTTP 头信息,可以在实例化时传递一个
字典参数,如下所示。
from django.http import HttpResponse
def my_view(request):
response = HttpResponse('Hello, world!', content_type='text/plain')
response['X-My-Header'] = 'Hello'
return response
2.JsonResponse:用于返回JSON格式的数据。
#JsonResponse 类用于构建 JSON 响应对象,需要传递一个参数:Python
对象,该对象将被序列化为 JSON 格式。如果需要添加 HTTP 头信息,可以在
实例化时传递一个字典参数,如下所示。
from django.http import JsonResponse
def my_view(request):
data = {'name': 'John Doe'}
response = JsonResponse(data, content_type='application/json')
response['X-My-Header'] = 'Hello'
return response
3.HttpResponseRedirect:用于重定向到其他页面。
#HttpResponseRedirect 类是 redirect 函数的底层实现,用于将请求重
定向到指定的 URL。需要传递一个参数:重定向的 URL。
from django.http import HttpResponseRedirect
def my_view(request):
return HttpResponseRedirect('/some-url/')
4.render:用于渲染HTML模板并返回给客户端。
#render 函数用于渲染模板并返回 HttpResponse 对象,常用于 Django
视图中。它需要传递至少两个参数:请求对象和模板文件名
from django.shortcuts import render
def my_view(request):
context = {'name': 'John Doe'}
return render(request, 'my_template.html',)
5.get_object_or_404:用于获取某个对象,如果该对象不存在则返回404错误页面。
6.get_list_or_404:用于获取某个对象列表,如果该列表不存在则返回404错误页面。
7.redirect:用于重定向到其他页面,与HttpResponseRedirect类似。
#redirect 函数用于将请求重定向到指定 URL。它需要传递至少一个参数:
重定向的 URL。如果要在重定向前向 URL 传递参数,可以使用查询字符串
(query string)或 URL 参数(URL parameters)
from django.shortcuts import redirect
def my_view(request):
return redirect('/some-url/')
8.Http404:用于抛出404错误页面。
模块
创建models
模块(modle),主要用于页面展示,首先在我们的models文件中,创建一个类来继承models.Model,然后可以给他设置字段
创建完成后执行 manage.py makemigrations,执行成功后可以在应用的migration中看到新增了一个文件----也就是一个建表语句
随后执行python manage.py migrate,将本地创建的模型同步一下,类似Git的push,这时候刷新一下就可以看到数据库中也新增了这个表
以上就是模型和数据库的交互,模型的职责也就是作为我们的数据库添加和管理表和表结构的唯一链接
使用实践
而上面讲的视图就可以给我们的模型提供数据,我们需要把我们的models导入views中,同时我们还需要创建对应的路由
现在就可以访问我们的/models路径啦,同时数据库中也新增成功
这样我们一个简单的小网站就搭建好啦,虽然功能还不是很齐全,但是可以通过后续一点一点加上去,这么说来我们也有自己的网站了,是不是小时候贼羡慕的自己(狗头)