首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【Python全栈100天学习笔记】Day46 导入导出Excel报表和配置日志

下面我们就以xlwt为例,来演示如何在Django项目中导出Excel报表,例如导出一个包含所有老师信息的Excel表格。...Python中定义了六个级别的日志,按照从低到高的顺序依次是:NOTSET、DEBUG、INFO、WARNING、ERROR、CRITICAL。...是的,我们可以使用连接查询,但是在使用Django的ORM框架时如何做到这一点呢?...对于多对一关联(如投票应用中的老师和学科),我们可以使用QuerySet的用select_related()方法来加载关联对象;而对于多对多关联(如电商网站中的订单和商品),我们可以使用prefetch_related...,因为在这个例子中,我们只需要获取老师的姓名、好评数和差评数这三项数据,但是在默认的情况生成的SQL会查询老师表的所有字段。

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

    Django JSONField SQL注入漏洞(CVE-2019-14234)分析与影响

    作为铁杆Django用户,发现昨天Django进行了更新,且修复了一个SQL注入漏洞。在我印象里这应该是Django第一个SQL注入漏洞,且的确是可能在业务里出现的漏洞,于是进行了分析。...他们的区别是:transform表示“如何去找关联的字段”,lookup表示“这个字段如何与后面的值进行比对”。...0x03 如何复现这个漏洞 分析了原因,复现的方法就呼之欲出了。...但是熟悉Django的同学也应该知道,Django的queryset使用方法是编写如下查询语句: .filter(detail__author='phith0n') 这个detail__author用户是无法控制的...原因是,Django-Admin中就支持用户控制queryset的查询键名,我在2017年在微博中说到过这一点,不过当时没有测过JSONField,sad。 ?

    2.1K32

    Django实践-07日志调试,Django-Debug-Toolbar配置与sql优化

    如果这个过滤器需要额外的参数,它们可以作为过滤器配置字典中的附加键提供。在这种情况下,当实例化 SpecialFilter 时,参数 foo 将被赋予一个 bar 的值。...django.request,它将所有 ERROR 消息传递给 mail_admins 处理程序。此外,这个记录器被标记为 不 传播消息。...在使用Django的ORM框架时可以基于如下方法: 对于多对一关联(如投票应用中的老师和学科),我们可以使用QuerySet的用select_related()方法来加载关联对象; 而对于多对多关联...(如电商网站中的订单和商品),我们可以使用prefetch_related()方法来加载关联对象。...,因为在这个例子中,我们只需要获取老师的姓名、好评数和差评数这三项数据,但是在默认的情况生成的SQL会查询老师表的所有字段。

    28310

    Django 1.10中文文档-第一个应用Part5-测试

    创建一个测试来暴露这个bug 刚才我们是在shell中测试了这个bug,那如何通过自动化测试来发现这个bug呢?...在找出一个bug之后,编写一个测试来验证这个错误,然后在代码中更正这个错误让我们的测试通过。...未来,在应用中可能会出许多其它未知的错误,但是我们可以保证不会无意中再次引入这个错误,因为简单地运行一下这个测试就会立即提醒我们。 我们可以认为这个应用的这一小部分会永远安全了。...什么是视图测试 当我们修复上面的错误时,我们先写测试,然后修改代码来修复它。 事实上,这是测试驱动开发的一个简单的例子,但做的顺序并不真的重要。在我们的第一个测试中,我们专注于代码内部的行为。...在这个测试中,我们想要通过浏览器从用户的角度来检查它的行为。在我们试着修复任何事情之前,让我们先查看一下我们能用到的工具。

    1K60

    Django Admin后台管理:高效开发与实践

    配置数据库:在settings.py中,设置数据库引擎,如DATABASES配置。...通过这一章的学习,你将能够掌握Django的认证系统,并学会如何管理用户、组和权限,以及如何自定义用户模型和用户界面。这些知识对于构建安全、可扩展的Web应用程序至关重要。...后续章节将进一步探讨如何结合Django的其他功能来构建复杂的应用程序。...4.2 使用QuerySet进行数据查询 QuerySet API:Django的QuerySet API提供了丰富的查询方法,如过滤、排序、聚合等。...在这一章中,你将学习如何有效地管理Django项目中的数据,包括导入导出数据、优化数据查询性能以及利用第三方库进行数据分析。这些技能对于构建高性能和数据驱动的应用程序至关重要。

    25710

    Django进阶-3-ORM单表

    一、orm使用方式: orm操作可以使用类实例化,obj.save的方式,也可以使用create()的形式 二、QuerySet数据类型 QuerySet与惰性机制 所谓惰性机制:Publisher.objects.all...()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行。...name='云团') for author in authors: print(author.name) #但是有时候取出来的数据量太大会撑爆缓存,可以使用迭代器优雅得解决这个问题...="错误信息" 错误信息 validators 自定义错误验证(列表类型),从而定制想要的验证规则 from django.core.validators import RegexValidator...MinLengthValidator,MaxValueValidator,MinValueValidator 如: test = models.CharField( max_length

    1.4K20

    django 1.8 官方文档翻译: 1-2-5 编写你的第一个Django应用,第5部分

    修复这个错误 我们已经知道问题是什么:Question.was_published_recently() 应该返回 False,如果它的pub_date是在未来。...在找出一个错误之后,我们编写一个测试来暴露这个错误,然后在代码中更正这个错误让我们的测试通过。...视图的一个测试 当我们修复上面的错误时,我们先写测试,然后修改代码来修复它。 事实上,这是由测试驱动的开发的一个简单的例子,但做的顺序并不真的重要。 在我们的第一个测试中,我们专注于代码内部的行为。...在这个测试中,我们想要通过浏览器从用户的角度来检查它的行为。 在我们试着修复任何事情之前,让我们先查看一下我们能用到的工具。...>] 改进我们的视图 投票的列表显示还没有发布的投票(即pub_date在未来的投票)。让我们来修复它。

    40020

    django2.0入门教程第二节

    继上篇 django2.0入门教程第一节,生成了投票应用,接下来讲解如何使用django的模型与数据库进行交互 数据库设置 打开mysite/settings.py,可看到默认情况下,django使用的是...django.contrib.messages', 'django.contrib.staticfiles', ] 这个选项代表django激活的应用,这些应用能被多个项目使用,你也可以将这些应用进行打包分发...有些应用要求我们必须至少要有一个数据库,如,django的后台,因此,让我们先来执行以下命令: $ python manage.py migrate Operations to perform:...OK Applying auth.0007_alter_validators_add_error_messages......此外,我们还可以在models中添加自定义方法: import datetime from django.db import models from django.utils import timezone

    71630

    Django学习笔记之Queryset详解

    ,只有当用到这个QuerySet时,才会查询数据库求值。...不过update()中的键值对的键只能是主表中的字段,不能是关联表字段,如下 Entry.objects.update(blog__name='foo') #错误,无法修改关联表字段,只能修改Entry...中的实现 在SQL中,很多关键词在删、改、查时都是可以用的,如order by、 like、in、join、union、and、or、not等等,我们以查询为例,说一下django如何映射SQL的这些关键字的...数量,字段命名为ut_num,返回的QuerySet中的每个object都有 #这个字段。...代码2中,当遍历开始前,先拿到Entry的QuerySet,并且也拿到这个QuerySet的每个object中的blog对象,这样遍历过程中,就不用再查询数据库了,这样就减少了数据库读次数。

    2.7K30

    Django学习之十三:提高页面开发效率

    模板的构造核心就是:模板语法和上下文数据(渲染引擎的全局数据和后端代码传入的数据);模板的驱动就是模板引擎(如Jinja2,django内置的DTL)。...(是django默认的finder查找逻辑限制了这个名字) 创建py文件,自定义tag就放在文件中。文件名一定要小心,不要和其它app注册的冲突了。...如果变量指向的也是一个字典:那么使用dotted可以访问了字典中的值:{{ my_dict.key }} {{ my_object.attribute }} {{ my_list.0 }} 全局数据...首先,我们利用这个tag的场景是:多个url页面都要用到相同的页面布局内容。如:博客系统中的个人站点的用户文章列表,标签列表,公告;这些对于这个用户的站点内容都是一样的。...这个指定tag就是django的inclusion tags。

    1.1K10

    pythonjson字符串转json对象_gson解析json嵌套数组

    此时数据库里已经插入了一些数据 这里要提一下网上比较常见的一种方式,需要用到django.core.serializers,这个类的serialize(format, queryset, **options...)方法,很明显,这个方式只能作用与queryset格式,并且通过例子(不再列出),得到的结果类似这种 [{“model”: “polls.person”, “pk”: 2, “fields”: {“name...方案: 我们还是使用_ dict _这个利器,首先,我们根据pid获得一个Person对象,然后利用dict方法打印看看结果(错误) req_pid=3708262007//request...,其不能直接json化(通过serializer得到的不好看,也不好处理,大量的属性处理还比较费劲),需要将其遍历得到每个对象,然后将其属性字典加入到list中,最后将其添加到通用dict中 pers...如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    3.7K10

    让你的 Python 静态起来

    所以,如果 Python 能够 “静态” 一些,将会给我们带来几个明显的增益: 大幅度提升代码的可读性 能够将参数传递时的 类型错误 扼杀在摇(biān)篮(mǎ)中 能够最大程度利用 IDE 提供的代码提示...,减少 typo 那么该如何拥有这些“静态”的特性呢?...model from typing import Union, List from django.db.models import QuerySet from my_app.models import...MyModel # 在后续代码中,records 的类型将被等同于 MyModel 的 QuerySet # 不过同时需要注意,如果此时传入一个单纯的 List[MyModel], # 并调用 QuerySet...在这个例子中,我们定义了两种协议,Exitable 和 Quittable,同时在传参时支持它们俩的并集,那么只要实现了 exit(self) -> int 或 quit(self) -> int 的对象都会被接受

    98260

    django 1.8 官方文档翻译: 2-5-4 聚合 (初稿)

    annotate()子句的返回结果是一个查询集 (QuerySet);这个 QuerySet可以用任何QuerySet方法进行修改,包括 filter(), order_by(), 甚至是再次应用annotate...例如,在annotate() 中混入多个聚合将会得出错误的结果,因为多个表上做了交叉连接,导致了多余的行聚合。...例如,我们可以查询所有出版商,并注上它们一共出了多少本书(注意我们如何用 ‘book’指定Publisher -> Book 的外键反转关系): >>> from django.db.models import...不是在原始的 QuerySet返回结果中对每个对象中添加注解,而是根据定义在values() 子句中的字段组合对先结果进行唯一的分组,再根据每个分组算出注解值, 这个注解值是根据分组中所有的成员计算而得的...这个行为与查询集文档中提到的 distinct() 一样,而且生成规则也一样:一般情况下,你不想在结果中由额外的字段扮演这个角色,那就清空排序项,或是至少保证它仅能访问 values()中的字段。

    1.7K30

    Django学习之旅(六)

    主要逻辑代码是写在 models.py 中。 1 新建数据库 Django 支持的数据库有 PostgreSQL 、MySQL、SQLite等,基本上市面上的有的数据库都支持。...在 Django 中,一个模型类对应一个数据库的表。因此,一个模型类的实例就表示表中的一条数据。为了输出的数据一目了然,我们需要对上面的 model 进行优化。 ?...3)使用 QuerySet API 查询数据 从数据库中查询出来的结果一般是一个集合,这个集合叫做 QuerySet。而一旦我们建立好数据模型,Django 会自动为我们生成一套数据库抽象的API。...4)使用 QuerySet 创建数据 我们之前创建对象都是通过命令行。但是在生产环境中,显然不能这么操作。那么我们要如何在 py 文件中创建对象呢?...6)使用 QuerySet 删除数据 删除的用法跟创建用法是大同小异,在获取结果后面添加 delete() 方法即可。 ? Django 学习之旅不知不觉到了终点了。终点又是另一个新的起点。

    1.4K30
    领券