首页
学习
活动
专区
圈层
工具
发布

Django 2.0 新特性 转

一、Python兼容性 Django 2.0支持Python3.4、3.5和3.6。Django官方强烈推荐每个系列的最新版本。 最重要的是Django 2.0不再支持Python2!...例子中只接收整数型年份参数,不再接收字符串类型,同时“10000”年也是合法的(虽然是5位数字),而不像先前正则里只能接收4位数字。...; metadata现在是可读可编辑的; 允许在GDAL的内部虚拟文件系统中创建GDALRaster对象; 新的GDALBand.color_interp()方法返回波段的颜色说明。...和DateTimeField; 新增TruncQuarter方法用于截取DateField和DateTimeField到季度的第一天; 为基于类的索引添加db_tablespace参数; 为QuerySet.select_for_update...QuerySet.reverse()和last()不能用于切片后的查询集 对切片后的查询集使用反转和获取最近对象的操作将弹出异常,如下所示: >>> Model.objects.all()[:2].reverse

3.1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Django模板标签regroup方法对对象进行分组

    在使用 Django 开发时,有时候我们需要在模板中按对象的某个属性分组显示一系列数据。例如博客文章按照时间归档分组显示文章列表,或者需要按日期分组显示通知(例如知乎)的通知列表。...但 regroup 不仅仅限于分组这样的数据结构,只要是一个类列表对象都可以分组,例如一个 QuerySet 对象。...(max_length=100) pub_date = models.DatetimeField() # 文章发布时间 现在要按照发布日期的年、月对文章进行分组显示,例如最开始给出的我的个人博客的归档页面示例...post_list,先按照年份对其分组,然后循环显示这些年份,而在某个年份的循环中,又对该年份下的文章按照月份对其分组,然后循环显示该年中各个月份下的文章,这样就达到了一个日期归档的效果。...相信从以上两个示例中你可以很容易地总结出 regroup 模板标签的用法,从而用于自己的特定需求中,例如像知乎一样对用户每天的通知进行分组显示。

    99920

    Django模板标签regroup的妙用

    在使用 Django 开发时,有时候我们需要在模板中按对象的某个属性分组显示一系列数据。...但 regroup 不仅仅限于分组这样的数据结构,只要是一个类列表对象都可以分组,例如一个 QuerySet 对象。...(max_length=100) pub_date = models.DatetimeField() # 文章发布时间 现在要按照发布日期的年、月对文章进行分组显示,例如最开始给出的我的个人博客的归档页面示例...post_list,先按照年份对其分组,然后循环显示这些年份,而在某个年份的循环中,又对该年份下的文章按照月份对其分组,然后循环显示该年中各个月份下的文章,这样就达到了一个日期归档的效果。...相信从以上两个示例中你可以很容易地总结出 regroup 模板标签的用法,从而用于自己的特定需求中,例如像知乎一样对用户每天的通知进行分组显示。

    1.5K60

    Django_rest框架电商项目实践项目(一篇文章讲清楚电商项目)项目的创建与基本的配置,所有接口的代码,项目代码已给

    用户详情序列器 view url 前端如何做 用户的注册 序列化 view url 用户信息的更新 序列器 view url 收货地址的新增和列表查询 新增和list列表查询 (一个接口实现)...from django.conf import settings # @python_2_unicode_compatible class Category(models.Model):...',None) # 获取前段传过来的这个字段 if category is not None: queryset = Product.objects.filter...(self): # 重写源码,获取查询级,也就是获取当前用户的地址 user = self.request.user queryset= DeliveryAddress.objects.filter...(self): # 获取特定的结果集 筛选 user=self.request.user queryset=Order.objects.filter(user=user,

    3.2K10

    Django开发网页计数器统计页面浏览次数

    实际Web开发过程中,我们经常要统计并显示一个页面的浏览次数。今天我们会以博客的例子,教你如何利用Django开发网页计数器,统计并显示一篇文章的浏览次数。...本文的原理可以适用于很多场景,比如统计某一文件的下载次数,统计某一用户在单位时间内的登录次数。本文使用Django 2.0 + Python 3.X实现。...第一步 建立APP,设置URL 我们创建一个叫demo的项目,并利用python manage.py startapp blog创建一个名叫blog的APP,并把它加入到settings.py中INSTALLED_APP...ArticleDetailView通过URL传递过来的参数(id=6)获取当前文章对象,并通过模板blog/article_detail.html显示。...每次通过get_object方法获取文章对象后, 还调用该对象的viewed的方法,使计数增加1。 用户每次重新访问/blog/article/6/或刷新浏览器,计数器都会增加1。

    2.5K20

    Django中与时区相关的安全问题

    Django在时区这个问题上下了不少功夫,但是很多资深的开发者都有可能尚未完全屡清楚Django中各种时间的实际意义和使用方法,导致写出错误的代码;作为安全研究人员,时区问题也可能和一些安全问题挂钩,比如优惠券的过期时间...从“两种时间”说起 我们都知道,在Python中表示“时间”的对象是datetime.datetime。...其实在Python中,这个对象被分成了两个类型: aware datetime naive datetime 他们的区别是:如果datetime对象的tzinfo属性有设置时区值,则这个对象是一个aware...所以,我们在获取当前时间的时候,一定要使用Django自带的now()或localtime()函数,而不能使用Python的datetime.datetime.now()函数。...通常情况下我们有两种常见的判断方法。一是,用户访问时,直接从model中取出这个对象,然后和now()进行比较: ?

    2.9K21

    Django 使用 ORM 操作数据库详解

    在python中的一个默认的编写规范是一切皆对象,这样做使得代码简洁,结构清晰,便于维护和重用代码,同时极大的提升开发效率。...同样在操作数据库时,一般我们用SQL语句来实现操作,但是放在Python中是一串冗长的字符串,不利于调试和修改,更不符合上面提到的规范。...数据库 ORM 数据库的表(table ) 类(class) 记录,行数据(record) 对象(object) 字段(field) 对象的属性(attribute) ORM相对原始SQL的优劣势 优势...无法实现某些复杂操作 遗忘SQL语句编写 怎么选择原生SQL和ORM 对于复杂的SQL语句或数据库层面,推荐使用原始SQL 对于要处理复杂的业务逻辑,加快开发,推荐使用ORM ORM 相对 原始SQL在一般的业务中...数据库中的数据表 ? 2. 脚本添加 #!

    1.1K20

    Django学习之旅(六)

    每个模型都有一些类变量,在模型中每个类变量都代表了数据库中的一个字段。 每个字段通过 Field 类的一个实例表示 —— 例如字符字段 CharField 和日期字段 DateTimeField 。...只需要执行上步的两行命令即可 ? Django 会对 models.py 进行检测,自动发现需要更改的,应用到数据库中去。 1)创建对象 打开 python 终端,利用命令行来创建一个对象。 ?...3)使用 QuerySet API 查询数据 从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet。而一旦我们建立好数据模型,Django 会自动为我们生成一套数据库抽象的API。...那么我们要如何在 py 文件中创建对象呢? QuerySet 创建对象一共有四种办法 方法 A ? 方法B ? 方法C ? 方法D ?...6)使用 QuerySet 删除数据 删除的用法跟创建用法是大同小异,在获取结果后面添加 delete() 方法即可。 ? Django 学习之旅不知不觉到了终点了。终点又是另一个新的起点。

    1.8K30

    Python3+ Django3:自动生成Swagger接口文档

    这也造成了很多读者误认为Swagger只是Java语言下的一个框架,其实并不是的,Swagger除了能应用在Java语言的工程中,也同时适用于在其它语言下,比如Python。...接下来,在本篇文章,介绍的就是基于Python3+Django3下,如何接入Swagger框架,并且实现Swagger接口文档的自动生成。 2....3)Swagger可在不同的平台上从代码注释中自动生成 4)Swagger社区活跃,里面有许多强悍的贡献者 3....Django接入Swagger 网上很多资料在介绍Django接入Swagger方法时,都是基于django-rest-swagger库进行讲解的,都殊不知,从2019年6月份开始,官方已经废弃了该库,...在django 3.0中已经不支持该库了,取而代之的是全新的第三方drf-yasg库。

    17.1K32

    Django入门

    Django是一个高级的Python Web框架,它支持快速开发和简洁实用的设计。...这篇文章是看了Django官方文档并进行练习之后总结的笔记,主要总结入门需要了解的几个知识点: 使用Django创建项目。 路径匹配,一个请求路径是如何映射到对应的回调函数。...Model,用于以面向对象的方式来操作数据库。 View,接收一个Web请求,然后返回一个Web响应。 使用Django创建项目 1.准备工作 安装Python和使用MySQL数据库。...从CREATE TABLE todo_todo中可以看出,Django将应用名todo和model名称的小写结合起来作为表的名称,如果要自定义对应的表的名称,需要使用Meta选项中的db_table属性...这里先简单了解一下:为了从数据库中获取对象,需要使用模型类的一个 Manager 构造 QuerySet ,一个 QuerySet 代表从数据库的一个对象的集合。

    1.8K00

    Django ORM 单表操作

    对象,类似list,可以通过索引来获取列表中的对象,这里不支持负索引 from django.shortcuts import render,HttpResponse from app01 import...)如果获取不到符合条件的数据,返回一个空对象,不报错 from django.shortcuts import render,HttpResponse from app01 import models...print(book_obj) # 返回所有price和title字段,以列表套元组的形式 # QuerySet [(Decimal('99.00'), 'Python')] for...和values_list区别 values查询返回的结果是列表套字典的形式,字段名和数据都能够获取到 values_list查询返回的结果是列表套元组的形式,只返回数据 distinct 去重 distinct...= models.Book.objects.filter(pk=23).first() print(book_obj) book_obj.title='如何傍富婆,从入门到入赘'

    1.7K20

    Django ORM:天使与魔鬼

    魔鬼的陷阱 QuerySet 的类型 有时候希望它简单一点 有时候希望它坚持自我 多对多和 values() ORM 终究只是 ORM 隐式转换 Mysql 低版本时间精度问题 虚假的 .query...print(type(f2.created)) 通过以上的例子就能知道,我们自己创建的内存对象 f1 和通过 orm 拿出来的内存对象 f2 完全不是同一个东西,虽然他们都可以操作同一条数据库记录,但如果在内存对象里做比较就会有很多问题...) # 假定 Foo 表中已经存在了比较多的记录 f = Foo.objects.create() # 我们预期是获取按照时间来排序,f 的前一条记录 o = Foo.objects.filter(...由于我们的 f 是内存对象,拿到的 created 又是有 microseconds 的,相当于我们在用 2020-09-18 09:24:38.260779 和 2020-09-18 09:24:38.000000...https://code.djangoproject.com/ticket/17741 那么如何调试提交到 DB 中的具体语句呢?

    1.1K40

    Django 1.10中文文档-第一个应用Part2-模型和管理站点

    如果你不需要它们中的任何一个或所有应用,可以在运行migrate之前从INSTALLED_APPS中自由地注释或删除相应的行。...有了这些代码,Django就能够: 为该应用创建数据库表(CREATE TABLE 语句); 为Question对象和Choice对象创建一个访问数据库的python API。...您必须从manage.py所在的同一目录运行python,或确保该目录在Python搜索路径中,这个import mysite才会成功。...django.utils import timezone分别引用Python 的标准datetime 模块和Django django.utils.timezone中时区相关的工具。...每一种类型的字段,Django管理站点都知道如何显示它们; 每个DateTimeField字段都会有个方便的JavaScript快捷方式。

    3.1K60

    定义数据库模型

    ,每个模型只能有一个主键列,如果使用选项设置某属性为主键列后,则django不会再生成默认的主键列 属性命名限制 不能是python的保留关键字 由于django的查询方式,不允许使用连续的下划线...注意:排序会增加数据库的负担 三、objects 概念 是Manager类型的对象,用于与数据库进行交互的 当定义模型时没有指定管理器对象,则Django会为模型类提供一个名为objects的管理器...,Django就不会添加objects,但是这两个管理器对象没有任何区别 自定义管理器类 原理 定义Manager类的子类,实现数据的逻辑删除。...重写get_queryset()方法,父类中的该方法用户获取所有的数据 实现 class</span...manage.py makemigrations 执行迁移 python manage.py migrate 使用迁移文件在数据库中生成对应的数据表此刻数据库中已经存在我们的用户表

    82020

    Django Rest Framework

    常规的view类,优点: * 提供了更好用的request对象,不同于普通的django HttpRequest更好用。...’ filter_backends: 过滤queryset的类列表,和在settings中设置DEFAULT_FILTER_BACKENDS 一样 2)方法 基本方法: get_queryset():...(详情见官网http://www.django-rest-framework.org/api-guide/generic-views/) get_object():获取某一个具体的model实例对象。...保存与删除挂钩方法: 以下方法是mixins类提供,提供简单的对象保存和删除的行为重写: perform_create(self, serializer): CreateModelMixin 保存对象时候会被调用....GenericViewSet: 继承了GenericAPIView,提供了默认的get_queryset()和get_object()等方法来获取model数据,但不提供任何请求处理方法。

    2.9K60

    Django 3.1 官网学习路线

    OK migrate 命令获取所有还没有应用的迁移(Django 跟踪哪些迁移是使用数据库中名为 django_migrations 的特殊表应用的),并在数据库上运行它们——本质上,就是将您对模型所做的更改与数据库中的模式同步...不同的模型字段类型(DateTimeField、CharField)对应于适当的 HTML 输入小部件。每种类型的字段都知道如何在 Django 管理中显示自己。...例如,在一个博客应用程序中,您可能有以下视图: 博客首页-显示最近的几个条目。 条目“详细信息”页面——一个条目的永久链接页面。 基于年份的归档页面——显示给定年份中的所有月份和条目。...基于月份的归档页面——显示给定月份中的所有天数和条目。 基于天的归档页面——显示给定天中的所有条目。 评论操作——处理向给定条目发布评论。...首先,在您的轮询目录中创建一个名为 templates 的目录。Django 会在其中寻找模板。 项目的模板设置描述了 Django 如何加载和呈现模板。

    10.2K10
    领券