《Django 5 By Example》阅读笔记:p237-p338
《Django 5 By Example》学习第11天,p237-p338总结,总计102页。
一、技术总结
1.follow system(关注功能)
表之间的关系有三种:OneToOneField,many-to-one(使用Foreignkey()),ManyToManyField。有时候为了更好的描述对象之间的关系,需要多创建一张中间表:Creating an intermediate model is necessary when you want to store additional information on the relationship, for example, the date when the relationship was created, or a field that describes the nature of the relationship。
例如关注功能:
class Contact(models.Model):
user_from = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='rel_from_set')
user_to = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='rel_to_set')
created = models.DateTimeField(auto_now_add=True)
class Meta:
indexes = [
models.Index(fields=['-created']),
]
ordering = ['-created']
def __str__(self):
return f'{self.user_from.username} follows {self.user_to.name}'
2.monkey patch
p289, You use the add_to_class() method of Django models to monkey patch the User model。monkey patch的意思是:Monkey patch is a technique used to dynamically update the code at runtime without altering the source code。示例:
# monkey patch 示例
user_model = get_user_model()
user_model.add_to_class(
'following',
models.ManyToManyField('self', through=Contact, symmetrical=False, related_name='followers')
)
注:尽量少用monkey patch。
3.activity stream(活动流)功能
4.contenttypes
p300, contenttypes 的作用:This application can track all models installed in your project and provides a generic interface to interact with your models.
5.denormalization(反规范化)
p315, Denormalization is making data redundant in such a way that it optimizes read performance. For example, you might be copying related data to an object to avoid expensive read queries to the database when retrieving the related data.
6.signal
7.django-debug-toolbar
用于完善debug功能,在界面通过toolbar显示一些统计信息。个人觉得在实际开发中可有可无。
8.使用redi做缓存
使用的 package 名称也叫redis。在实际业务也中经常使用,但是不复杂,掌握常用的方法即可。
二、英语总结(生词:2)
1.thewart
p292. Usernames, unlike sequential IDs, thwart enumeration attacks by obscuring your data structure.
vt. to stop sth from happing.
2.every once in a while
p327, Redis stores everything in memory, but the data can be persisted by dumping the dataset to disk every once in a while, or by adding each command to a log.
idiom. sometimes, but not regularly. 也写作 every so often。
三、其它
chapter 07 简评:4-7 章是一个完整的项目(bookmarks),建议从第 4 章按顺序阅读到第 7 章,不要跳过某个章节,因为作者的代码是连续,跳过之后项目可能无法运行。
Pycharm(2024.3 Professional Edition) :Settings > Build, Execution, Deployment > Python Debugger新增了一个功能 "Run debugger in server mode",然后 Pycharm 默认是勾选的,导致我在 WSL 使用 debug 启动后一直无法访问。忍了那么久终于可以debug了,气 die! Pycharm,你再这样我明年就不续费了。
四、参考资料
1. 编程
(1) Antonio Melé,《Django 5 By Example》:https://book.douban.com/subject/37007362/
2. 英语
(1) Etymology Dictionary:https://www.etymonline.com
(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)
《Django 5 By Example》阅读笔记:p237-p338的更多相关文章
- django1.8.3搭建博客——2 django web 开发指南阅读笔记
一. django框架 1 .http封装web服务的整个过程.由请求(request)和响应(response)两部分组成. 请求的内容为URL (指向文档的路径). 响应主要为正文(body ...
- 《Java编程思想》阅读笔记二
Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
- <<UML大战需求分析>>阅读笔记(2)
<<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- Hadoop阅读笔记(七)——代理模式
关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...
- Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...
- Hadoop阅读笔记(五)——重返Hadoop目录结构
常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...
随机推荐
- 【Burp Suite】Mac之破解明文密码
一.安装CA证书 安装证书是为了代理的时候可以继续访问地址,否则的话会提示网络异常 参考文章:<Mac系统Burp Suite的安装>,文章中是火狐浏览器的操作 1.谷歌浏览器 选择导出的 ...
- JVM笔记二双亲委派机制
JVM笔记二双亲委派机制 JVM双亲委派机制,简单来说:我爸是李刚,有事找我爸.用三个字来说:往上捅.不信?咱们一起看看. JVM的双亲委派机制 JVM类加载器是什么机制?为什么使用这种机制(这种 ...
- vlan 技术
Ref: VLAN及Trunk,重要!看瑞哥如何讲的明明白白! 图文并茂VLAN以及Trunk详解,超级详细
- 动态规划——详解leetcode518 零钱兑换 II
动态规划 零钱兑换 II 参考书目:<程序员代码面试指南:IT名企算法与数据结构题目最优解> 给定不同面额的硬币和一个总金额.写出函数来计算可以凑成总金额的硬币组合数.假设每一种面额的硬币 ...
- keycloak~关于授权码认证中的scope的实践
前言 在 Keycloak 14.0.0 中,使用 protocol/openid-connect/auth 接口获取授权码时,scope 参数是可选的,但它确实有作用.下面是关于 scope 参数的 ...
- Passwords
详见 此处 Header File 0*)1190*+0**0).0970)/0)/111105000
- HBase集群安装及集成
Hbase集群搭建 注意:在安装hbase或者hadoop的时候,要注意hadoop和hbase的对应关系.如果版本不对应可能造成系统的不稳定和一些其他的问题.在hbase的lib目录下可以看到had ...
- 智能化IT运维平台建设方案,基于智和信通运维体系的高敏捷二次开发
随着企业信息进程不断加速,运维人员需要面对越来越复杂的业务和越来越多样化的用户需求,不断扩展的应用需要越来越合理的模式.越来越智能的工具来保障运维能灵活便捷.安全稳定地开展.企业网络规模的不断扩大,从 ...
- 安装windows11系统跳过微软账号登录,使用本地账号登录方法
在安装win11系统,进行到如图下所示界面的时候,暂停下 我们可以按下键盘的Shift+F10按键(部分电脑是Fn+Shift+F10),这时屏幕会出现命令行窗口,如图下所示 我们需要在命令行内输入代 ...
- YoloDotNet v2.1:实时物体检测的利器
项目介绍 YoloDotNet v2.1 是一个基于 C# 和 .NET 8 的实时物体检测框架,专为图像和视频中的物体检测而设计.它集成了 Yolov8 ~ Yolov11 模型,通过 ML.NET ...