published on in tech
tags: python django cookiecutter

cookiecutter for django

cookiecutter 这是一个专门用于创建项目目录结构的工具,同时也是使用Python来实现的,它可以使用一个模板来创建一个项目,比如上面我介绍的项目目录结构实际上是一个模板,也是github开源的,链接:https://github.com/pydanny/cookiecutter-django

安装cookiecutter pip install cookiecutter

创建项目 cookiecutter https://github.com/pydanny/cookiecutter-django

运行上面第二个命令的时候,会问你一大堆问题,这些问题中下示例(附简短讲解)

Cloning into 'cookiecutter-django'...
remote: Counting objects: 550, done.
remote: Compressing objects: 100% (310/310), done.
remote: Total 550 (delta 283), reused 479 (delta 222)
Receiving objects: 100% (550/550), 127.66 KiB | 58 KiB/s, done.
Resolving deltas: 100% (283/283), done.
# 问你项目叫什么名字,这里可以大小写,带空格
project_name [Project Name]: Reddit Clone
# 问你项目的根目录名字,一般是小写没有空格,这个会生成一个目录
project_slug [reddit_clone]: reddit
# 开发者名字
author_name [Daniel Roy Greenfeld]: Jeffrey Hu
# 开发者邮件
email [you@example.com]: zhiwehu@gmail.com
# 项目简短介绍
description [A short description of the project.]: A reddit clone.
# 项目域名
domain_name [example.com]: lettoo.com
# 项目版本号
version [0.1.0]: 0.0.1
# 时区,就选默认的UTC
timezone [UTC]: 
# 是否使用whitenoise,whitenoise是一个Python实现的静态文件host解决方案,建议初学者选No
use_whitenoise [y]: n
# 是否使用celery,[celery](http://www.celeryproject.org/)是一个Python实现的分布式任务队列解决方案,一般用于后台job,建议初学者选No
use_celery [n]: 
# 是否使用mailhog,mailhog是一个用于本地开发环境测试email的,建议初始选No
use_mailhog [n]: n
# 是否使用sentry,sentry是一个云端日志跟踪和分析平台,Python实现,同时也是开源平台,你可以自己搭建自己的sentry云日志跟踪分析平台。建议初始选No
use_sentry_for_error_reporting [y]: n
# 是否使用opbeat,opbeat是一个云端性能跟踪和分析工具,有一部分错误分析功能,建议初始选No
use_opbeat [n]: n
# 是否使用pycharm,pycharm是一个IDE,由大名鼎鼎的jetbrains公司出品,其出品其他有名的IDE如Idea,Webstorm等,因为我是pycharm开发所以选Yes,如果你不使用这个IDE则选No
use_pycharm [n]: y
# 是否是windows操作系统
windows [n]: n
# 是否使用Python3
use_python3 [y]: y
# 是否使用docker,docker是一个app容器平台,建议初始选No
use_docker [y]: n
# 是否使用heroku,heroku是一个PAAS云平台,用于部署web app,建议初始选No
use_heroku [n]: n
# 是否使用compressor,compressor是一个压缩解决方案,建议初始选No
use_compressor [n]: n
# 使用postgresql版本,这个项目建议本地开发环境和生产环境都使用Postgresql数据库,Postgresql是一个开源数据库,也是Django官方推荐使用的数据库,默认选择1为当前最新的版本。
Select postgresql_version:
1 - 9.5
2 - 9.4
3 - 9.3
4 - 9.2
Choose from 1, 2, 3, 4 [1]: 1
# 选择哪一种JavaScript任务管理器,这里建议初始选None,我们不希望在这里过多的涉及前端的内容。
Select js_task_runner:
1 - Gulp
2 - Grunt
3 - Webpack
4 - None
Choose from 1, 2, 3, 4 [1]: 4
# 是否使用let's encrypt,let's encrypt是一个免费生成SSL HTTPS证书的服务,让你的网站免费支持https安全协议,默认选No
use_lets_encrypt [n]: n
# 开源license,默认选1,如果你是私有项目,选5
Select open_source_license:
1 - MIT
2 - BSD
3 - GPLv3
4 - Apache Software License 2.0
5 - Not open source
Choose from 1, 2, 3, 4, 5 [1]: 1
是否使用AWS Elastic Beanstalk,默认选No
use_elasticbeanstalk_experimental: n