Yin 东亮

UTF、Unicode 和 ASCII 编码的关系

9月 20, 2019
系统设计

说 UTF 需要先说 Unicode,而说 Unicode 需要先说 ASCII,这三者正好是历史的发展一步步进化而来的,是计算机领域为了解决全世界各种文字之间的编码统一问题而给出的通用解决方案。 ASCII 码表 # ASCII(Americ ...

Django 中 N+1 查询问题优化

12月 17, 2018
Python, Django, 系统设计

Django ORM 框架虽然很好用,但是如果不注意,在查询时很容易引发 N + 1 的查询问题。 N + 1 问题 # 考虑 文章+作者 这样的 Model 层设计,在这个模型中,Author 和 Article 是一对多的关系。 from django.db import models from django.contrib.auth.models import User class Author(models.Model): user = models.ForeignKey(User) name = models.CharField(max_length=64) class Article(models.Model): title = ...

Gitlab CI/CD 实践总结

11月 15, 2018
DevOps, Tools

Gitlab 的 CI/CD 功能可能是区别于 GitHub 的一个最有价值的功能之一。接触了 CI/CD 以来,很多以前需要手动测试、打包、部署的工作,现在都可以通过编写 .gitlab-ci.yml 来实现了,一方面持久化、规范化了部署服务的操作流程,另一方面 CI/CD 功能与 Gitlab 深度结 ...

Docker 使用笔记

7月 2, 2018
DevOps

Docker 介绍 # Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker 允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器), ...

魔兽世界漫游指南 - 历史篇

1月 31, 2018
Life

本文重点关注魔兽世界的重大历史走向,以及世界中各个地方的风土和人情,目的是让自己在玩游戏的时候能够理顺剧情,经常 AFK 的话也能前后关联起来,魔兽世界的世界观确实太大,另外游戏的很多玩法比如职业、天赋、专业 ...

Django 的中间件执行顺序

11月 12, 2017
Python, Django

中间件是 Django 用来处理请求和响应的钩子框架。它是一个轻量级的、底层级的“插件”系统,用于全局性地控制 Django 的输入或输出。 MIDDLEWARE # Django 自带了一些已经内置的中间件,你可以直接使用,它们被记录在 built-in middleware reference 中。 MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', ...

数据库的 join 连接类型

9月 30, 2017
MySQL, Database

内连接 # 内连接为默认连接方式,只有两张表都匹配的行才显示。 SELECT * from a INNER JOIN b on a.name=b.name; 左(外)连接 # 左边的表不加限制,会全部显示出来,右边的只会显示符合搜索条件的记录,不匹配的记录会以 null 显示。 SELECT * from a LEFT JOIN b on a.name=b.name; ...

Django 的软删除设计

2月 23, 2017
Python, Django

设计一个 Django 的软删除方案,要求数据库在删除的时候不能物理删除数据,同时尽量不要太侵入代码业务。 这里用到了 Django 的 Manager,它赋予了 Django Model 操作数据库的能力,每个 Model 都包含一个 Manager,比如我们常用的 objects ...


© 2012 - 2024 YINDONGLIANG.COM