Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/whg517/django-project-template
Django Project Template
https://github.com/whg517/django-project-template
Last synced: 16 days ago
JSON representation
Django Project Template
- Host: GitHub
- URL: https://github.com/whg517/django-project-template
- Owner: whg517
- Created: 2018-01-18T06:02:50.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-10T21:12:40.000Z (over 3 years ago)
- Last Synced: 2024-04-16T03:52:23.384Z (9 months ago)
- Language: Python
- Size: 31.3 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# django-project-template
## How to install
### 1. Create Project
你应该把下面 `project_name` 换成你自己的项目名称
```bash
$ django-admin startproject \
--template=https://github.com/whg517/django-project-template/archive/master.zip \
--name=Procfile \
project_name
```### 2. Use Pycharm Open It
![Pycharm Django](http://ono3vb8rf.bkt.clouddn.com/FtQjfMTD-DQbTpf0dExvK-z6Cd5j.gif)### 3. Change `DJANGO_SETTINGS_MODULE`
将 `DJANGO_SETTINGS_MODULE` 更改为当前项目的配置。可参照 `manage.py` 文件
```
[tool:pytest]
DJANGO_SETTINGS_MODULE = demo.settings.development
```## Features
Production-ready configuration for Static Files, Database Settings, template dir, etc.
Latest Python 3.6 runtime environment.### 使用分离式的设置文件
新建项目会将 settings.py 替换为文件夹,生成多个设置文件
| 设置文件 | 目的 |
| --- | --- |
| base.py | 基本设置文件,在各个环境中都相同的设置可以发入其中。|
| development.py | 当开发是使用的设置文件。可以设置开发是的选项,包括 DEBUG,log 的等级,是否开启某些工具等。 |
| production.py | 当部署到正式服务器上所用的设置。 |其中在 manage.py 文件中默认使用 development.py 配置。即默认情况下使用 `python manage.py runserver` 运行项目时使用的是开发环境。
在 wsgi.py 文件中默认使用 production.py 配置。即生产环境中使用 Nginx-uWSGI-django 模式部署,则使用生产环境> 针对 wsgi.py 文件中使用 production.py 文件,在运行 `python manage.py runserver` 命令并不会加载 production.py 中指定配置。
因为 `os.environ.setdefault()` 方法会首先检查是否设置过默认环境。具体可以查看相关源码如果在开发环境要测试生产环境下程序运行,可按如下方式设置:
1. 在启动命令中通过 `--settings` 参数指定配置
```bash
$ python manage.py shell --settings=mysite.settings.production$ python manage.py runserver --settings=mysite.settings.production
```2. 使用 `DJANGO_SETTINGS_MODULE` 环境变量
建议不要设置在系统环境变量中或者当前用户环境变量中。如果设置了,将会导致其他项目在启动的时候找不到对应的配置。
3. 如果测试环境是使用 WSGI 启动的 Django,可以在 postactivate 脚本中设置 DJANGO_SETTINGS_MODULE 。
### 使用 Pipenv 管理虚拟环境
[Python Dev Workflow for Humans](https://pipenv.readthedocs.io/en/latest/)
Pipenv 是一个强大的虚拟环境管理工具,类似于 node 的 npm 。项目根目录下的 `Pipfile` 是定义的依赖,安装完成后会再生成 `Pipfile.lock` 文件。
```bash
pip install requests # 安装依赖
pip install -d ipython # 安装开发环境下的依赖。
```### 生产模式下读取 `settings.conf` 配置
生产模式下的 Django settings 可以通过在根目录创建 `settings.conf` 传入配置,如果配置已存在,则会覆盖。
### 集中管理 apps
跟目录 `apps` 包集中放置所有 app 。
### Isort
使用 [isort](https://github.com/timothycrosley/isort) 对项目导包进行格式化
```
isort
```### Pytest
[pytest](https://docs.pytest.org/en/latest/contents.html) 是 Python 中简单易用的测试工具
通过 `pytest-django` 使用 pytest 测试 django 。
### Coverage
[coverage](https://coverage.readthedocs.io/en/v4.5.x/) 是生成测试报告的一个工具。
通过 [pytest-cov](https://pytest-cov.readthedocs.io/en/latest/) 插件可以在测试的同时生成测试报告。
```
pytest-cov
```### Tox
使用 [tox](https://tox.readthedocs.io/en/latest/index.html) 做自动化处理。
对于 isort 检测会直接输出检测结果,而非帮助修改。
对于 flake8 采用非严格模式(命令前置 `-` ),输出结果,而不是终止自动化。
## TODO list