Django Admin后台添加数据库视图过程解析

yizhihongxing

下面我将为你详细讲解“Django Admin后台添加数据库视图过程解析”以及两条示例说明。

什么是Django Admin?

Django Admin 是 Django 的一个开箱即用的功能,它提供了一个快速而简单的方式来创建管理后台。通过 Django Admin,我们可以灵活地配置、管理和增加我们的数据。

如何添加数据库视图?

添加数据库视图有两个步骤:

第一步:创建视图函数

创建视图函数,将查询结果格式化并返回给前端。

示例一:

假设你的模型名字是 MyModel,我们想要创建一个视图,显示从数据库中获取的所有 MyModel 实例的 id 和 title。视图函数可以写成下面这样:

from django.http import JsonResponse
from .models import MyModel

def my_view(request):
    my_models = MyModel.objects.all()
    result = [{'id': my_model.id, 'title': my_model.title} for my_model in my_models]
    return JsonResponse(result, safe=False)

示例二:

如果我们需要一个更复杂的查询,可以使用 Django 的 ORM(Object Relational Mapping)来进行查询。比如我们想要查询 MyModel 中字段名为 field1 字段值为 1 的实例,视图函数可以这样写:

from django.http import JsonResponse
from .models import MyModel

def my_view(request):
    my_models = MyModel.objects.filter(field1=1)
    result = [{'id': my_model.id, 'title': my_model.title} for my_model in my_models]
    return JsonResponse(result, safe=False)

第二步:将视图函数添加到 Django Admin 后台

要将视图函数添加到 Django Admin 后台,我们需要完成以下两个任务:

  • 创建一个新的 Django Admin 后台视图
  • 将该视图注册到 Django Admin

创建一个新的 Django Admin 后台视图

创建一个新的 Django Admin 后台视图的步骤如下:

  1. 打开 Django Admin 的 admin.py 文件

  2. 导入 AdminSiteViewTemplateView 和你的视图函数

python
from django.contrib.admin import AdminSite
from django.views import View
from django.views.generic import TemplateView
from .views import my_view

  1. 创建一个新的视图类,继承自 TemplateViewView

python
class MyView(TemplateView):
template_name = "my_template.html"

或者

python
class MyView(View):
def get(self, request, *args, **kwargs):
# Add your custom logic here
return my_view(request)

  1. 使用 admin_siteregister 装饰器注册视图类

python
admin_site = AdminSite(name='myadmin')
admin_site.register(MyView, MyAdminView)

将视图类注册到 Django Admin

将我们所创建的视图类注册到 Django Admin 后台,只需在 admin.py 文件中添加以下代码:

from django.contrib import admin
from django.contrib.admin import AdminSite
from django.views import View
from django.views.generic import TemplateView
from .views import my_view

class MyView(TemplateView):
    template_name = "my_template.html"

admin_site = AdminSite(name='myadmin')
admin_site.register(MyView)

admin.site.register(MyModel)

然后在你的 Django 项目中启动服务器,访问 http://127.0.0.1:8000/admin/myadmin/myview/,即可看到你所创建的视图。

总结

本文讲解了如何添加数据库视图以及两个添加数据库视图的示例。第一步是创建一个视图函数,将查询结果格式化并返回给前端。第二步是将视图添加到 Django Admin 后台。如果你需要查看详细的代码示例,请参考上述示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django Admin后台添加数据库视图过程解析 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Django ModelForm类生成表单

    1. 定义ModelForm类 #froms.py from django import forms from app01.modles import User class UserModelForm(forms.ModelForm): class Meta: model = User #关联的model类 fields = “__all__” #或(‘na…

    Django 2023年4月13日
    00
  • Django之PopUp的具体实现方法

    让我来详细讲解一下“Django之PopUp的具体实现方法”。 1. 弹出框的实现原理 在Django中,我们使用Bootstrap或其他JavaScript库来实现弹出窗口。具体而言,我们将在Django中创建一个视图(view)和一个模板(template),使用JavaScript代码将此视图的内容加载到弹出框中。 以下是详细的实现步骤: 1.1 创建…

    Django 2023年5月16日
    00
  • Django+Ajax+Mysql实现数据库数据的展示

    最近老师让搞一个系统,仅仅展示一下数据库的数据 在做海底捞时,是交接的师兄的项目,用的语言是java,框架是SSM(Spring、SpringMVC、MyBatis),这次我准备用Python写,前端是从网上下载的免费的,修改的:https://blackrockdigital.github.io/startbootstrap-sb-admin-2/inde…

    2023年4月9日
    00
  • Django之FileField字段

    在头像上传的时候,属于文件类型 首先视图函数获取的时候,request.FILES.get(‘文件名变量’) avatar_obj = request.FILES.get(‘avatar’) model.objects.create_user(username=name,password=pwd,…,,avatar=avatar_obj)   此时,Dj…

    Django 2023年4月11日
    00
  • Django学习之一:Install Djongo 安装Djongo

    Install Djongo 安装Djongo Djongo是基于python的web框架,自然安装最关心的是python解释器版本了。 Prerequisites 安装条件 Python版本与Djongo版本两者之间的兼容关系 Django Version Python versions 1.11 2.7;3.4;3.5;3.6 2.0 3.4;3.5;3…

    Django 2023年4月11日
    00
  • django重置管理员密码

    django版本1.11 >>> from django.contrib.auth.models import User>>> user = User.objects.get(username=’your account’)>>> user.set_password(‘your password’)&gt…

    Django 2023年4月13日
    00
  • 使用django+nginx搭建网站

    https://blog.csdn.net/qq_42327424/article/details/109012658 https://www.cnblogs.com/shenh/p/10101344.html https://blog.csdn.net/qq_42314550/article/details/81805328?utm_medium=dist…

    Django 2023年4月13日
    00
  • Django html标签make_safe

    from django.utils.safestring import mark_safe a = mark_safe(“<a href=’#’>test</a>”)  

    Django 2023年4月9日
    00
合作推广
合作推广
分享本页
返回顶部