django中cookiecutter的使用教程
一、安裝
匯入:pipenv install cookiecutter
問題:在匯入的過程中可能會報錯:
pkg_resources.VersionConflict: (importlib-metadata 3.1.0 (/Users/apple/.local/share/virtualenvs/testProject-h0hp04R9/lib/python3.6/site-packages),Requirement.parse('importlib-metadata<2,>=0.12; python_version < "3.8"'))。
原因及解決:這個問題的出現主要是pipenv版本不支援,需要更新pipenv,使用命令:pip3 install -U pipenv,然後重新匯入即可。
二、建立專案
執行cookiecutter
問題:直接報錯zsh: command not found: cookiecutter
解決辦法:使用pipenv --py獲取python環境的安裝目錄,在該目錄下執行cookiecutter
執行之後會繼續報錯:缺少Template
Usage: cookiecutter [OPTIONS] TEMPLATE [EXTRA_CONTEXT]... Try 'cookiecutter -h' for help. Error: Missing argument 'TEMPLATE'.
在github中找到pydanny/cookiecutter-django,賦值github地址,把地址寫在python執行環境的後邊,再次執行
/Users/apple/.local/sha~~~~re/virtualenvs/testProject-h0hp04R9/bin/cookiecutter https://github.com/pydanny/cookiecutter-django.git
成功進入配置選項,進行具體的配置
三、具體配置
- project_name:專案名字
- project_slug:預設和專案的名字保持一直,不必填寫
- description:專案的簡單描述
- author_name:作者的名稱,格式 名字
- domain_name:網站域名
- eamil:郵箱
- version [0.1.0] Select open_source_license: 選擇是否開源型別
- timezone:時區設定,Asia/Shanghai
- windows:是否使用的是windows系統開發
- use_pycharm:是否使用pycharm
- use_docker:是否使用docker
- Select postgresql_version:選擇postgresql的版本,預設為最新版,並且預設沒有繼承Mysql~~~~
- Select js_task_runner:js的執行器,使用預設的
- Select cloud_provider:預設
- Select mail_service:選擇email的服務
- use_async:是否使用非同步程式設計
- use_drf:是否使用django rest_framework,前後端分離的話選擇y
- custom_bootstrap_compilation:是否自定義bootstrap壓縮
- use_compressor:用於壓縮js、css的技術,需要選擇y
- use_celery:是否使用celery,使用選擇y
- use_mailhog:第三方的郵件傳送服務
- use_sentry:是否使用錯誤日誌監控
- use_whitenoise:用於部署靜態檔案的,帶有檔案壓縮功能
- use_heroku:國外有名的pass平臺,如果要部署到上邊的話選擇y會自動生成對應的配置
- Select ci_tool:選擇工具(None/Travis/Gitlab/Github)
- keep_local_envs_in_vcs:是否在本地環境變數中使用版本配置,選擇y
- debug:是否使用debug,選擇y
四、問題:
專案在進行資料遷移的時候可能會報錯:
File "/Users/apple/.local/share/virtualenvs/django-pro-7n8-wfJY/lib/python3.6/site-packages/django_celery_beat/models.py",line 60,in crontab_schedule_celery_timezone choice[0].zone for choice in timezone_field.TimeZoneField.CHOICES AttributeError: type object 'TimeZoneField' has no attribute 'CHOICES'
原因:django-celery-beat setup.py有一個https://github.com/celery/django-celery-beat/blob/master/requirements/default.txt依賴要求,強制django-timezone-field只能使用>=4.0和<5.0版本的,開發者推送了一個4.1.1版本的django-timezone-field,中斷了資料遷移過程。
解決辦法:pipenv install django-timezone-field==4.0,重新執行資料遷移就可以了
總結
到此這篇關於django中cookiecutter使用教程的文章就介紹到這了,更多相關django中cookiecutter使用內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!