Datawhale Django后端开发入门 Vscode TASK02 Admin管理员、外键的使用

一.Admin管理员的使用

1、启动django服务

使用创建管理员之前,一定要先启动django服务,虽然TASK01和TASK02是分开的,但是进行第二个流程的时候记得先启动django服务,注意此时是在你的项目文件夹下启动的,时刻注意要执行的文件夹。

我这里又重新创建了一个虚拟环境,此时的项目名字我命名为了 appproject ,主要也是为了便于区分,这里的项目名字是可以自己随便命名的,主要是为了自己便于理解。

python manage.py runserver

2.新建终端terminal

 此时我们看到此时启动服务之后终端下便没有再输入命令的行了,我的解决方法是再新建了一个终端(个人解决方法,是有效的)。

 虽然是一个新的操作界面,但是还是对当前项目执行操作。

3.创建超级管理员

 

 此时是在你的项目文件夹下执行的命令,执行命令之后会选择让你注册账户和密码,写完账号和邮箱之后输入密码和确认密码时此时是默认不显示输入的内容,此时只要你两次输入的内容相同,就会提示创建成功。

python manage.py createsuperuser #(创建超级管理员)

4.登录 admin 后台(浏览器中输入)

`http://127.0.0.1:8000/admin`

如果前边的步骤都对的话,输入网址后就会出现如图所示界面,然后按照你刚才创建的账号和密码登录就可以了。 

登陆成功后界面如图所示,记得自己创建时的账号和密码呀,如果忘了的话可以也是再重新创建管理员账号和密码的 ,再重新运行创建管理员命令。

5.配置文件

在**admin.py**文件中注册您的模型

from django.contrib import admin
from .models import * # 引入产品表
# 一定要分开逐个注册,不能放在一起
admin.site.register(Goods) # 在admin站点中 注册产品表
admin.site.register(GoodsCategory) # 在admin站点中 注册产品表

二、构建数据表(外键的使用)

一、更新自己的文件

* 更新产品表  

 **models.py**
# 外键
category = ForeignKey(GoodsCategory, on_delete=SET_NULL,related_name='goods_set',null=True,verbose_name='产品分类')
      # on_delete 设置当外键对应的数据被删除时的反应
      # null=True

如上图所示在 models.py 中更新文件

**views.py**

  ```python
  from django.shortcuts import render
  from rest_framework.response import Response
  from .models import *
  from rest_framework.decorators import api_view
  from django.shortcuts import get_object_or_404
  # Create your views here.
  # GET
  # POST

  # 函数式编程
  @api_view(['POST', 'GET'])
  def InsertGoodsCategory(request):
      category_name = request.data.get('分类名字')
      
      # 获取分类对象或创建新的分类对象
      category, created = GoodsCategory.objects.get_or_create(name=category_name)
      
      # 判断是否已存在分类
      if not created:
          return Response({"status": "已存在", "goods_category": category_name}, status=200)
      else:
          return Response({"message": f"Successfully inserted category '{category_name}'."})

  @api_view(['POST','GET'])
  def FilterGoodsCategory(request):
      data = request.data.get('分类名字')
      goods = GoodsCategory.objects.filter(name=data)
      if goods.exists():
          return Response({"status": "已存在", "goods_category": data}, status=200)
      else:
          return Response({"status": "不存在" ,"goods_category": data}, status=404)
  ```

  **urls.py**
* 放入路由

  ```python
  from django.contrib import admin
  from django.urls import path
  from apps.erp_test.views import *

  urlpatterns = [
      path('admin/', admin.site.urls),
      path('filtergoodscategory/', FilterGoodsCategory),
      path('insertgoodscategory/', InsertGoodsCategory),
  ]

  ```  

 

 如上图所示这里是需要注意的,要替换为你自己所见的存放文件夹下所建立的APP名字,如下图所示我都替换为了自己所建的名字。

 二、使用postman针对`insertGoodsCategory/`和`filtergoodscategory/`API接口进行测试

 如上是我自己测试成功的截图,需要注意的一点是我们此时虽然是新开了一个终端来进行命令操作,但是运行结果还是会显示在第一个终端内,如下是在运行终端内成功的截图。

进行postman测试要下载postman,这是一个软件,需要进行注册账号,注册成功之后就会出现如上图所示界面。如下是项目中成功的截图

我认为比较难的(很不好操作)是这一步,因为之前没有接触过这一领域,但是感觉还是很有趣的,要使用post 和 get 执行命令,如下是我运行为未成功的截图。

 

 出现如上图所示报错时,回去再检查看哪个模块没有将项目给出的参数换成自己的项目的名字。

 假如出现上图所示的报错的话,可能时你的URL写错了,建议将那个名称直接进行手动复制,不要自己输入。

 

直接从上图所示位置复制 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/82416.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue:this和that的理解

当我们进入公司的时候会发现一个很常见的情况,就是你的前开发者会常用这么一个变量:that、self… 为什么会用到that、self呢,小编是这么理解的,this指向的是当前的对象,而that、self是临时的变量,为了临时存…

水果成篮(力扣)双指针滑动窗口 JAVA

你正在探访一家农场,农场从左到右种植了一排果树。这些树用一个整数数组 fruits 表示,其中 fruits[i] 是第 i 棵树上的水果 种类 。 你想要尽可能多地收集水果。然而,农场的主人设定了一些严格的规矩,你必须按照要求采摘水果&…

三重奏的和谐:如何完美对齐公司、部门与个人目标

引言 在企业的运营和管理中,目标的设定与对齐是至关重要的。它不仅决定了公司的方向和愿景,还影响到每一个部门和团队成员的工作内容和效果。如何确保公司目标、部门目标和团队个人目标之间的完美对齐,是每一个管理者都需要面对的挑战。 目…

JDK中的Timer总结

目录 一、背景介绍二、思路&方案三、过程1.Timer关键类图2.Timer的基本用法3.结合面向对象的角度进行分析总结 四、总结五、升华 一、背景介绍 最近业务中使用了jdk中的Timer,通过对Timer源码的研究,结合对面向对象的认识,对Timer进行针…

从NLP到聊天机器人

一、说明 今天,当打电话给银行或其他公司时,听到电话另一端的机器人向你打招呼是很常见的:“你好,我是你的数字助理。请问你的问题。是的,机器人现在不仅可以说人类语言,还可以用人类语言与用户互动。这是由…

获取excel中的图片(包含wps中嵌入单元格图片)

项目中有excel导入功能,并且需要导入excel中的图片;模板如图: 已知office中插入的图片为浮动形式;如图: wps中可以插入浮动图片,也可以插入嵌入单元格图片;如图: 并且在wps嵌入单元格形式的图片可以看到使用的是公式;如图: 问题来了,如何获取图片 并且将图片与单元格进行对应 …

Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

DolphinScheduler是一个开源的分布式任务调度系统,拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性,适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2,如果在业务中需要更好…

【GitHub】Pycharm本地项目打包上传到Github仓库的操作步骤

文章目录 1、Pycharm端的设置操作2、Github端的设置操作3、Pycharm上配置Github4、Git本地项目至GitHub仓库5、前往Github中查看确认6、常见报错 1、Pycharm端的设置操作 通过CtrlAltS快捷组合键的方式,打开设置,导航到版本控制一栏中的Git,…

LTPP在线开发平台【使用教程】

LTPP在线开发平台 点击访问 LTPP在线开发平台 LTPP(Learning teaching practice platform)在线开发平台是一个编程学习网站,该网站集文章学习、短视频、在线直播、代码训练、在线问答、在线聊天和在线商店于一体,专注于提升用户编…

QT处理日志文件

由于实际生产需要,软件系统的运行,会产生大量的日志文件,有时候一天就能产生超过百万条log记录,那么为了能够处理日志文件,查询并且找到我们想要的报错信息,因此不得不考虑怎么实现,打开大日志文…

i.MX6ULL开发板无法进入NFS挂载文件系统的解决办法

问题 使用NFS网络挂载文件系统后卡住无法进入系统。 解决办法 此处不详细讲述NFS安装流程 查看板卡挂载在/home/etc/rc.init下的自启动程序 进入到../../home/etc目录下,查看rc.init文件,首先从第一行排查,查看/home/etc/netcfg文件代码内容&…

回归预测 | MATLAB实现FA-SVM萤火虫算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现FA-SVM萤火虫算法优化支持向量机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现FA-SVM萤火虫算法优化支持向量机多输入单输出回归预测(多指标,多图)效果一览基本介绍…

阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?

本文根据作者在「TakinTalks 稳定性社区 」公开分享整理而成 #一分钟精华速览# 全栈可观测是一种更全面、更综合和更深入的观测能力,能协助全面了解和监测系统的各个层面和组件,它不仅仅是一个技术上的概念,更多地是技术与业务的结合。在“…

Zoho Books的安全性和数据保护:财务信息安全的保障措施揭秘

在信息化时代,如何保障企业信息安全是十分重要的问题,尤其是财务信息。财务管理工具的安全性是否有保障是许多用户担心的问题。 Zoho Books财务管理工具为客户提供了一系列的数据保护和安全措施,以确保客户财务信息的安全。 1. 采用高度加密…

MySQL流程控制

流程控制 顺序结构: 程序从上往下依次执行分支结构: 程序按条件进行选择执行,从两条或多条路径中选择一条执行。循环结构: 程序满足一定条件下,重复执行一组语句 针对于MySQL的流程控制语句主要有3类。注意&#xff…

js ajax 国内快速 映像

ajax 快速 映像 https://www.bootcdn.cn/ axios入门和axios基本请求方式 https://blog.csdn.net/m0_68997646/article/details/127438174 使用 jsDelivr CDN: <script src"https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>因为我们国…

jps(JVM Process Status Tool):虚拟机进程状况工具

jps&#xff08;JVM Process Status Tool&#xff09;&#xff1a;虚拟机进程状况工具 列出正在运行的虚拟机进程&#xff0c;并显示虚拟机执行主类名称&#xff08;Main Class&#xff0c;main()函数所在的类&#xff09;以及这些进程的本地虚拟机唯一ID&#xff08;LVMID&am…

第5步---MySQL的DQL查询语句

第5步---MySQL的DQL查询语句 DQL 数据库查询语言 1.基本的查询语句 1.完整得查询得语句 简化版的查询语句 select * from 表名 where 条件; 2.创建用于测试的表 1.创建测试数据 -- DQL -- 创建测试表 DROP TABLE IF EXISTS product; CREATE TABLE IF NOT EXISTS product( pi…

分代收集 + 垃圾回收算法

分代假说 1. 弱分代假说&#xff08;Weak Generational Hypothesis&#xff09;&#xff1a;绝大多数对象都是朝生夕灭的 2. 强分代假说&#xff08;Strong Generational Hypothesis&#xff09;&#xff1a;熬过越多次垃圾收集过程的对象就越难以消亡 3. 跨代引用假说&…

Java开发面试题 | 2023

Java基础 接口和抽象类的区别&#xff1f;Java动态代理HashMap 底层实现及put元素的具体过程currenthashmap底层实现原理&#xff1f;map可以放null值吗&#xff0c;currenthashmap为什么不能放null值synchronze和reetrantlock区别&#xff1f;怎样停止一个运行中的线程&#…