0%

首先安装vue-cli

1
2
3
yarn global add @vue/cli
# OR
npm install -g @vue/cli

然后使用vue create <app-name>创建项目:

注意:使用vue create .表示在当前目录下创建项目。

当我使用nginx反向代理到vue service时,产生了一个Invalid Host header异常。

经过查找,发现对Host Header检查是Webpack DevServer的一种特性。

可以通过设置devServer.disableHostCheckdevServer.allowedHosts这两种方式中的一种来消除异常。

1
2
3
4
5
6
7
module.exports = {
//...
devServer: {
disableHostCheck: true,
allowedHosts: ['.host.com', 'host2.com']
}
}

其他有关使用Webpack DevServer的服务都可以使用相同的办法处理。

身份证号是由17位数字加1位校验码组成。

  • 其中前6位代表所在地区(省、市、区县)的行政区划代码
  • 接下来的8位是生日(年、月、日)
  • 再接下来的3位代表顺序码,用于防止同一个地区同一天出生的人产生重号,其中偶数代表男,奇数代表女
  • 最后1位是校验码

校验码的计算

将前17位每一位分别乘以对应的加权因子,求和之后对11取余,然后通过余数查找对应校验码。

加权因子:

位置序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
加权因子 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

校验码:

余数 0 1 2 3 4 5 6 7 8 9 10
校验码 1 0 X 9 8 7 6 5 4 3 2

关于15位身份证号

我国早期的身份证号是由15位数字组成,可按下面规则升18位身份证号:

  • 在第6位后面添加两位(生日年份的前两位,基本上等于添加19)
  • 最后添加一位校验码,以前面17位计算生成。

Compose CLI环境变量

可以使用环境变量来配置Docker Compose CLI。例如COMPOSE_PROJECT_NAMECOMPOSE_FILE等。 更多设置请参考

在compose files中引用环境变量

我们可以在compose file中直接引用环境变量:

1
2
web:
image: "webapp:${TAG}"

可以通过以下两种方式设置环境变量:

  1. 创建环境变量文件,然后使用env-file选项设置:

    1
    2
    3
    $ cat .env.prod
    TAG=1.1.0
    $ docker-compose --env-file .env.prod up -d
  2. 直接在Shell环境中设置环境变量:

    1
    2
    $ export TAG=1.1.0
    $ docker-compose up -d
Read more »

今天遇到一个奇怪的问题,就是在使用NOT IN操作时后面跟一个子查询,发现始终查询不到结果, 但是使用IN操作能够查询到结果。SQL语句如下:

1
2
3
SELECT * FROM parking_records
WHERE parking_id = '1'
AND car_id NOT IN (SELECT car_id FROM users);

查询相关资料后发现,在使用NOT IN操作时,你需要确认values中不能有NULL值,修改后的SQL语句如下:

1
2
3
4
5
6
SELECT * FROM parking_records
WHERE parking_id = '1'
AND car_id NOT IN (
SELECT car_id FROM users
WHERE car_id IS NOT NULL -- 增加非NULL判断
);

目标:执行python manage.py runserver时自动进行代码检查。

要达成该目标,可借助Django内置signal:autoreload_started

  1. 安装以下packages:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    flake8
    flake8-django
    flake8-assertive
    flake8-return
    flake8-tabs
    flake8-print
    flake8-colors
    flake8-html
    flake8-noqa
    flake8-literal
    flake8-todos
    flake8-raise
  2. 然后修改manage.py文件,添加check_style函数,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    @receiver(autoreload_started)
    def check_style(*args, **kwargs):
    try:
    from flake8.main.cli import main as flake8
    flake8([
    "--extend-ignore", "LIT101,DJ08",
    "--max-line-length", "120",
    "--max-doc-length", "150",
    "--tee",
    "--show-source",
    "--max-complexity", "10",
    "--select", "E,F,W,C90",
    "--extend-exclude", "manage.py,*/admin.py,*/migrations/*,*/tests*",
    "--format", ":".join([
    "${cyan}%(path)s${reset}:${yellow_bold}%(row)d${reset}:${green_bold}%(col)d${reset}",
    "${red_bold}%(code)s${reset} %(text)s"
    ]),
    ])
    except (ImportError, SystemExit):
    pass

Commit Message 格式

1
2
3
4
5
<type>(<scope>): <subject>
<空行>
<body>
<空行>
<footer>

上面是一次Commit后Message格式规范,分成标题,内容详情,结尾三个部分,各有各的用处,没有多余项。 头部即首行,是可以直接在页面中预览的部分,一共有三个部分<type><scope><subject>

含义分别如下:

Type

  • feat:新功能(feature)
  • fix:修补bug
  • docs:文档(documentation)
  • style:格式(不影响代码运行的变动)
  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)
  • test:增加测试
  • chore:构建过程或辅助工具的变动
Read more »

在这里,我们使用dpage/pgadmin4镜像。

首先,配置docker-compose.yaml文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: '3.7'

services:
pgadmin4:
image: dpage/pgadmin4
restart: always
ports:
- 5050:80
volumes:
- ./pgadmin:/var/lib/pgadmin
environment:
- PGADMIN_DEFAULT_EMAIL=admin@example.com
- PGADMIN_DEFAULT_PASSWORD=123456
- PGADMIN_CONFIG_ENHANCED_COOKIE_PROTECTION=True
- PGADMIN_CONFIG_CONSOLE_LOG_LEVEL=10

在首次启动服务之前,先创建pgadmin目录,以便挂载到容器中:

1
2
mkdir pgadmin/
chmod 777 pgadmin

然后执行命令docker-compose up -d启动服务。

Celery是python中常用的一个异步任务队列,使用它可以简化搭建任务队列的工作。

使用命令查看

查看worker状态

查看worker的状态:

1
2
3
4
5
6
7
$ celery -A proj status
celery@e12d18b11bf8: OK
celery@4e8eb97af6a8: OK
celery@0d9dcbcd7862: OK
celery@e858cc9a321f: OK
celery@7254993a84be: OK
...

查看worker的详细信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ celery -A proj inspect stats
-> celery@0d9dcbcd7862: OK
{
"broker": {...},
"clock": "649",
"pid": 1,
"pool": {...},
"prefetch_count": 16,
"rusage": {...},
"total": {}
}
-> celery@4e8eb97af6a8: OK
{
"broker": {...},
"clock": "649",
"pid": 1,
"pool": {...},
"prefetch_count": 16,
"rusage": {...},
"total": {}
}
...
Read more »

MinIO是一个高性能对象存储服务。它与Amazon S3云存储服务兼容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
version: '3.7'

services:
minio:
image: minio/minio
restart: always
ports:
- 9000:9000
command: server /data
volumes:
- ./data:/data
environment:
- MINIO_ACCESS_KEY=AKIAIOSFODNN7EXAMPLE
- MINIO_SECRET_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY