热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

VS2019开发Django(五)createsuperuser

导航:VS2019开发Django系列上篇我们已经把LazyOrders中用到的C#的实体转成了Django中的Entity,并且已经迁移数据库成功&#

导航:VS2019开发Django系列

 

上篇我们已经把LazyOrders中用到的C#的实体转成了Django中的Entity,并且已经迁移数据库成功,那么,今天继续介绍Django中内置的数据库操作Api以及新建超级用户。

1)初试API,打开Django shell

 输入如下命令:然后查看数据库中的数据,我们可以看到What's new?成功保存到了数据库中,更多的操作可以直接参考官方文档:

#导入models
>>> from hello.models import Choice,Question
#从数据库查询所有的Question
>>> Question.objects.all()
#没有查到数据

#导入时区模块
>>> from django.utils import timezone
#创建了一个名为q的Question对象
>>> q = Question(question_text="What's new?",pub_date=timezone.now())
#将q对象保存到数据库中
>>> q.save()

根据主键查询:

>>> from hello.models import Question
>>> q = Question.objects.get(pk=2)
Traceback (most recent call last):File
"", line 1, in File "D:\项目\local\DjangoLazyOrders\env\lib\site-packages\django\db\models\manager.py", line 82, in manager_methodreturn getattr(self.get_queryset(), name)(*args, **kwargs)File "D:\项目\local\DjangoLazyOrders\env\lib\site-packages\django\db\models\query.py", line 408, in getself.model._meta.object_name
hello.models.Question.DoesNotExist: Question matching query does
not exist.
>>> q = Question.objects.get(pk=1)
>>> q.id
1
>>> q.was_published_recently()
False
>>>

根据其他条件查询:

>>> questions = Question.objects.filter(question_text__startswith='What')
>>> questions
's new?>, 's your problem?>]>
>>> questions[1]
'
s your problem?>
>>> questions[1].question_text
"What's your problem?"
>>>

执行原生Sql:注意百分号要转义,%%

>>> from hello.models import Question
>>> query = Question.objects.raw("select * from hello_question where question_text like '%%python%%'")
>>> for q in query:
...
print(q)
...
python从入门到放弃
>>>

2)创建超级用户

 输入用户名,邮箱,密码即可,创建完成后,点运行,然后在跳转的地址http://localhost:8090/后面追加admin回车,就会跳转到Django的管理登录页,输入我们刚刚创建的用户名和密码,即可登录

登录进去之后,我们会看到认证和授权相关的内容,这是框架提供的,但是,我们自己添加的Hello应用并没有展示出来?

3)向管理页中加入我们的hello应用

找到我们hello应用下面的admin.py文件,向里边添加内容如下:

from django.contrib import admin# Register your models here.
from .models import Question,Choice,Category,Menu,Carts,Ordersadmin.site.register(Question)
admin.site.register(Choice)
admin.site.register(Category)
admin.site.register(Menu)
admin.site.register(Carts)
admin.site.register(Orders)

再次启动,重新访问admin页面,我们的hello应用中添加的实体都展示出来了,对比发现,除了Category是中文类别之外,其他都是英文的,对比源代码就知道Category添加了Meta类,其中verbose_name_plural 赋值了中文‘类别’,所以管理页显示为中文,那么,如果字段要显示中文,可以设置verbose_name的值为中文

#类别表
class Category(models.Model):category_id = models.AutoField(primary_key=True,verbose_name='类别ID')category_name = models.CharField(max_length=30,verbose_name='类别名')def __str__(self):return self.category_nameclass Meta:verbose_name_plural = '类别'#菜单表
class Menu(models.Model):menu_id = models.AutoField(primary_key=True,verbose_name='菜单ID')category = models.ForeignKey(Category,on_delete=models.CASCADE)menu_name = models.CharField(max_length=50,verbose_name='菜单名')img_path = models.CharField(max_length=100,verbose_name='图片路径',default='')price = models.DecimalField(max_digits=5, decimal_places=2)

4)总结

  • 该篇主要介绍了Django中的ORM怎么增删查改数据库
  • 创建了超级用户,并完成了配置,可以对我们新增加的Model增删查改

到这一步,后台管理基本就可以了,增删查改都有了,还有一个图片上传需要完善,待续...

转:https://www.cnblogs.com/dwBurning/p/Django5.html



推荐阅读
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
author-avatar
355301_01c00c
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有