Django之视图及常用函数与模块

视图

视图(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路径啦,同时数据库中也新增成功
在这里插入图片描述
在这里插入图片描述

这样我们一个简单的小网站就搭建好啦,虽然功能还不是很齐全,但是可以通过后续一点一点加上去,这么说来我们也有自己的网站了,是不是小时候贼羡慕的自己(狗头)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有被蠢哭到

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值