Django
@红@旗下的小兵
求知若渴 虚心若愚
展开
-
django 聚合函数
聚合函数存放位置:django中所有的聚合函数,都是放在 django.db.models 中的。聚合函数执行规则:聚合函数不能够单独执行,需要放在一些可以执行聚合函数的方法下面中执行。比如:"aggregate"# 在Articles模型中,有一个价格字段price,现在需要求所有文章price的平均数from django.shortcuts import renderfrom django.db.models import Avgfrom apps.test_thre.原创 2020-12-28 20:19:39 · 246 阅读 · 1 评论 -
在django中 报错:django.db.utils.OperationalError: (1054, “Unknown column ‘user_id‘ in ‘field list‘“)
今天在创建数据库模型时,本来文章模型Artilce已经映射到数据库中去了,且已经有数据了,突然想在创建一个User模型,让Article模型关联User模型,正好能练习一下Foreignkey外键关联,当时,中途在Article中,添加了外键ForeighKey 关联User表。当向数据库存储数据时,结果报错:>>> django.db.utils.OperationalError: (1054, "Unknown column 'user_id' in 'field...原创 2020-12-27 19:51:33 · 11949 阅读 · 5 评论 -
django 表关系之 多对多
应用场景:比如一篇文章和标签的关系。一篇文章可以有多个标签,一个标签可以被多篇文章所引用。因此标签和文章的关系就是典型的多对多的关系。下边只是一篇文章对应多个标签;一个标签对应多篇文章就不举例了,自己脑补下!实现方式:django为实现多对多的关系,提供了专门的字段ManyToManyField。还是拿文章和标签举例:class Articles(models.Model): title = models.CharField(max_length=200, null=.原创 2020-12-27 10:23:06 · 2694 阅读 · 0 评论 -
dhango 一对一
应用场景:比如一个用户表和一个用户表信息。在实际开发中可能需要保存用户的许多信息,但是有些信息是不经常用的。如果把所有信息都存放到一张表中,可能影响查询效率,因此可以把用户的一些不常用的信息存放到另外一张表中,我们叫做UserExtension。用户表User和用户信息表UserExtension就是典型的一对一的关系。实现方式:与ForeignKey类似,django为一对一提供了专门的Field叫做OneToOneField来实现一对一的操作:# 用户表 - 存储常用信息cl..原创 2020-12-26 20:39:59 · 139 阅读 · 1 评论 -
django 一对多关系
前几篇文章在记录ForeignKey时,其实已经实现一对多的关系,这篇文章来详细记录下。实现一对多关系就是通过 ForeignKey来实现:1、首先通过ForeignKey来关联User表中的数据(下边案例我们关联的是id为1的数据,一个user用户(可以把user理解为一个作者)可以对应多篇文章);2、第一次关联完之后,第二次我们想再次关联User表中id为1的数据时,应该:把User表中id为1的数据先取出来,然后再次关联,详细代码如下;# 模型class User(models.M原创 2020-12-23 20:54:31 · 3278 阅读 · 2 评论 -
django 外键删除
如果一个模型使用了外键。那么在对方那个模型被删除掉后,该进行什么样的操作。可以通过 on_delete 来指定。可以指定的类型如下:1、CASCADE:级联操作。如果外键对应的那条数据被删除了,那么这条数据也会被删除。def index(res): user = User.objects.get(pk=2) user.delete() return '删除成功'现在我们删除User表中的id为2的数据,结果外键关联的数据也被删除了:2、PROTECT:受保原创 2020-12-23 20:19:56 · 1328 阅读 · 0 评论 -
django ForeignKey 外键和表关系
表与表之间的关联,我们可以用ForeignKey 建立关联。ForeignKey( to, on_delete, **options )参数一:引用的是哪一个模型(表);参数二:当使用的外键引用的模型(表)数据被删除了,这个字段该如何处理;具体参数如下有详细说明:models.ForeignKey('model_name',on_delete=models.CASCADE)· CASCADE:级别操作,如果外键对应的那条数据被删除了,那么这条数据也会被删除。· PROTECT...原创 2020-12-22 21:03:20 · 2451 阅读 · 0 评论 -
Django中 Meta配置
Meta:对于一些模型级别的配置,我们可以在模型中定义一个类,叫做:Meta。在这个类中添加一些类属性来控制模型的作用。比如:我们想要在数据库映射的时候,使用自己定义的表名。那么我们可以在Meta类中添加一个db_table属性,如下:db_table:class Test(models.Model): # ··· ··· class Meta: db_table = 'name_lxc'如果表存在,添加完Meta之后,需要执行迁移命令才行。..原创 2020-12-20 21:55:46 · 364 阅读 · 0 评论 -
Django 中模型models字段类型总结
下边字段类型是在django中使用ORM创建数据模型时,常用的字段类型总结:1、AutoField一个自增的IntegerField,一般不直接使用,因为django会自动为每一张表添加自增primary_key2、BigIntegerField64位整数,-9223372036854775808 到 9223372036854775807...原创 2020-12-17 20:48:04 · 3862 阅读 · 0 评论 -
django中如何把时间改为中国时间
在setting.py中,修改如下三个参数:LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'USE_TZ = False即可完成,在使用 DateTimeField 来创建时间时,配置了上边三个参数,保存在数据库的时间就是中国时间。以下是没有设置上边三个参数和配置的三个参数的区别:默认是英国格林威治UTC时间,比国时晚了8小时!...原创 2020-12-13 08:02:29 · 3166 阅读 · 2 评论 -
django中数据迁移报错:ModuleNotFoundError: No module named ‘xxx‘
报错截图:定位问题:出现此问题,肯定是在apps中的应用项目文件,没有在 setting.py 配置路径,无法找到。解决:在setting.py中 引入 sys模块,然后 在python搜索路径中添加 apps文件目录:import sysimport osfrom pathlib import PathBASE_DIR = Path(__file__).resolve().parent.parentsys.path.insert(0, os.path.join(BA.原创 2020-12-08 21:43:34 · 3157 阅读 · 6 评论 -
Djiango创建及第一个视图函数
前期准备工作安装虚拟环境,不多说了,之前在讲flask时,已经很详细的讲过!一、进入虚拟环境之后安装djangopip install django指定版本安装:pip install django==1.11你可以执行 pip freeze 会看到,Django已经安装成功:二、接着来创建一个django的项目配制环境下边最后projectName...原创 2019-11-02 18:37:12 · 683 阅读 · 0 评论 -
Djiango路由配置文件
在官方文档中,推荐的路由配置是这样的:首先在views.py中创建视图函数:# views.pyfrom django.shortcuts import render# Create your views here.from django.http import HttpResponsedef index(request): return HttpResponse('&l...原创 2019-11-02 19:45:20 · 501 阅读 · 0 评论 -
Django连接mysql数据库及使用ORM创建数据表
在项目中,进入虚拟环境:1、首先安装mysql数据库驱动 pymysqlpip install pymysql2、在django的项目配置文件夹中找到__init__.py初始化文件增加这两行配置import pymysqlpymysql.install_as_MySQLdb()3、在django的项目配置文件夹中找到settings.py文件,修改配置找...原创 2019-11-03 09:37:01 · 763 阅读 · 0 评论 -
Django-数据库查询方法
集合查询:过滤器:返回查询集的方法叫做过滤器之所以叫查询集,因为使用下列方法,返回的就是一个查询集,其实就是一个特殊的list而已# 查询集<QuerySet [xxx, xxx]>#查询集的type<class 'django.db.models.query.QuerySet'>1、all() 全部查询,配合切片实现限制查询User.obj...原创 2019-11-05 15:43:47 · 480 阅读 · 0 评论 -
Django ORM字段参数
先来句鸡汤:当你的才华还撑不起你的野心的时候,你就应该静下心来学习在Djangon中,·一个类对应数据库中一个表· 一个类属性对应数据库表中的一个字段快速入门:创建一个数据模型# 一个类就代表了一个数据表class User(models.Model): # 数据表的表名 class Meta(): db_table = 'u...原创 2019-11-06 13:45:58 · 310 阅读 · 0 评论 -
Django 表关系之一对多
对于ForeignKey外键,在开发中用的非常多,下边详细的记录下使用外键一对多时的操作。1、比如下边,作者可以对应多篇文章,在文章Article模型中,定义一个外键,引用上边Author模型;当然你也可以在初始化的时候,为Author模型添加主键,下边Article文章模型外键默认引用Author模型主键为1的对象。这次我使用另外一种方式。# 一对多关系 文章与作者就是典型的一对多的...原创 2019-11-07 11:36:42 · 260 阅读 · 0 评论 -
在pycharm中使用pipenv来创建虚拟环境和安装django
刚在网上查了一圈,好家伙,全都是那一篇文章,而且用的pycharm是老版本的,下边介绍的是pycharm2019专业版的,直接切入正题:(1)打开pycharm -> File文件 -> New Project 创建新项目(2)打开pycharm -> File文件 -> New Project 创建新项目 -> 选择Django项目1、选择创建Django项目的本地路径(这里补充下,下边图应该没有后边的 \ , 必须要选择一个文件夹)。2、选择Pipe..原创 2020-11-29 11:24:19 · 1601 阅读 · 0 评论