搭建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 是更好的選擇。

为每个环境创建设置,并自定义。

    1. 将settings文件夹创建在config的子目录下

 

    1. 复制setting.py并创建base.py(用于本地和生产环境的共享文件)

 

    1. 创建development.py和production.py

 

    1. 在development.py中设置加载log和base.py

 

    1. 在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/,如果出现以下画面,则表示正常。

image.png

将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設定を記載していく
]
广告
将在 10 秒后关闭
bannerAds