殷东亮的博客

Django 中 N+1 查询问题优化

Dec 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 实践总结

Nov 15, 2018
DevOps, 工具

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

Docker 使用笔记

Jul 2, 2018
DevOps

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

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

Jan 31, 2018
生活

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

Django 的中间件执行顺序

Nov 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 连接类型

Sep 30, 2017
数据库, MySQL

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

Django 的软删除设计

Feb 23, 2017
Python, Django

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

Vagrant 虚拟机 Ubuntu16.04 安装 MariaDB

Sep 10, 2016
DevOps, 数据库, Linux, MySQL

由于宿主机安装了 MySQL,为了避免安装 MariaDB 造成 MySQL 无法使用,所以在 Vagrant 中安装 Mariadb。 更换网易 apt-get 源 /etc/apt/sources.list 读取源软件列表 sudo apt update 更新软件版本 sudo apt upgrade 安装 MariaDB sudo apt install mariadb-server 安全性设置更新 root 密码 sudo mysql_secure_installation 服务器开始远程登陆:m ...

在公司实习了一个月的感悟

Nov 24, 2015
生活

从上个月开始在大连云匠实习,在公司做 Python 后端,一个月来收获了很多。 首先是开发的流程和规范方面,之前都是自己做东西,除了实现功能外并没有考虑过多的内容。比如完整的测试用例,软件的设计模式,框架的开发标准, ...


© 2012-2024 YINDONGLIANG