搭建Django 3.0项目的步骤(带MySQL,pipenv)
摘要
请提供更多上下文以获取更准确的翻译。
在启动Django 3.0时,写下备忘录。
pipenv的配置
使用pipenv构建环境(这次指定为python3.7)。
$ pipenv --python 3.7
$ pipenv install
# Djnagoをインストール
$ pipenv install django==3.0.5
# mysql接続用にインストールしておく
pipenv install mysqlclient
可以使用以下内容创建Pipfile文件。
[[source]]
name = "pypi"
url = "https://pypi.org/simple"
verify_ssl = true
[dev-packages]
[packages]
django = "==3.0.5"
mysqlclient = "*"
[requires]
python_version = "3.7"
初始化
启动Django项目
# pipenvの環境を起動
$ pipenv shell
# djangoプロジェクトを作成する
$ django-admin startproject config .
# アプリケーション作成
python manage.py startapp myapp
配置的配置文件系統都放在 project_name 中,因此將其命名為 config 是更好的選擇。
为每个环境创建设置,并自定义。
-
- 将settings文件夹创建在config的子目录下
-
- 复制setting.py并创建base.py(用于本地和生产环境的共享文件)
-
- 创建development.py和production.py
-
- 在development.py中设置加载log和base.py
-
- 在base.py中设置应用程序的设置和日本语化
- 修复manage.py以加载development.py
from .base import * # baseの設定不ファイルを読み込む
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
ALLOWED_HOSTS = []
# ロギング設定
LOGGING = {
'version': 1, # 1固定
'disable_existing_loggers': False,
# ロガーの設定
'loggers': {
'django': {
'handlers': ['console'],
'level': 'INFO',
},
'myapp': {
'handlers': ['console'],
'level': 'DEBUG',
},
},
# ハンドラの設定
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'dev'
},
},
# フォーマッタの設定
'formatters': {
'dev': {
'format': '\t'.join([
'%(asctime)s',
'[%(levelname)s]',
'%(pathname)s(Line:%(lineno)d)',
'%(message)s'
])
},
}
}
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp', # <= 追記
]
# :
# :
LANGUAGE_CODE = 'ja' # 日本仕様に修正
TIME_ZONE = 'Asia/Tokyo' # 日本仕様に修正
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.development')
MySQL的配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'myapp_db', # ローカルに予め作成したDB
'USER': 'root',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
※可以使用brew等工具安装mysql服务器。
如果迁移成功,则数据库连接正常。
# 設定ファイルの指定が必要なので注意
$ python manage.py migrate --settings=config.settings.development
整理目录
创建model、views、forms、templates目录,以便能够将类进行分离。
根据需要也要创建父类base.py。
.
├── Pipfile
├── Pipfile.lock
├── README.md
├── config
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── development.py
│ │ └── production.py
│ ├── urls.py
│ └── wsgi.py
├── myapp
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── forms
│ │ └── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models
│ │ ├── __init__.py
│ │ └── base.html
│ ├── templates
│ │ ├── __init__.py
│ │ └── base.html
│ ├── tests.py
│ ├── urls.py
│ └── views
│ └── __init__.py
├── manage.py
└── static
试着启动
python manage.py runserver
请尝试访问 http://127.0.0.1:8000/,如果出现以下画面,则表示正常。
将urls.py拆分为不同的文件
最后将URL根据每个应用程序进行分隔并进行修正。
from django.contrib import admin
from django.urls import path, include # includeを追加
urlpatterns = [
path('admin/', admin.site.urls),
path('myapp/', include('myapp.urls')), # 追記
]
我要创建一个用于myapp的urls.py。
from django.urls import path
app_name='myapp'
urlpatterns = [
# myapp用のURL設定を記載していく
]