Django-Shop 教程
项目的目录结构及介绍
django-shop-tutorial/
├── myshop/
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ ├── wsgi.py
│ ├── asgi.py
│ ├── manage.py
│ ├── static/
│ ├── templates/
│ ├── apps/
│ │ ├── cart/
│ │ ├── catalog/
│ │ ├── checkout/
│ │ ├── payment/
│ │ ├── order/
│ │ ├── customer/
│ ├── migrations/
│ ├── admin.py
│ ├── models.py
│ ├── views.py
│ ├── tests.py
├── requirements.txt
├── README.md
目录结构介绍
myshop/
: 项目的主目录,包含了项目的所有配置和应用。__init__.py
: 使myshop
成为一个 Python 包。settings.py
: 项目的配置文件,包含了数据库、静态文件、模板等的配置。urls.py
: 项目的 URL 路由配置。wsgi.py
: 用于部署项目的 WSGI 应用。asgi.py
: 用于部署项目的 ASGI 应用。manage.py
: 用于管理项目的命令行工具。static/
: 存放静态文件,如 CSS、JavaScript 和图片。templates/
: 存放模板文件,用于渲染 HTML 页面。apps/
: 存放项目的各个应用,如购物车、商品目录、结账、支付、订单和客户管理。migrations/
: 存放数据库迁移文件。admin.py
: 用于注册模型到 Django 管理后台。models.py
: 定义数据库模型。views.py
: 定义视图函数或类。tests.py
: 编写测试用例。
requirements.txt
: 项目依赖的 Python 包列表。README.md
: 项目的说明文档。
项目的启动文件介绍
manage.py
manage.py
是 Django 项目的命令行工具,用于管理项目的各种操作,如运行开发服务器、创建应用、执行数据库迁移等。
python manage.py runserver # 启动开发服务器
python manage.py makemigrations # 创建数据库迁移文件
python manage.py migrate # 执行数据库迁移
wsgi.py
和 asgi.py
wsgi.py
和 asgi.py
是用于部署项目的 WSGI 和 ASGI 应用。它们分别用于同步和异步的 Web 服务器。
# wsgi.py
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')
application = get_wsgi_application()
# asgi.py
import os
from django.core.asgi import get_asgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myshop.settings')
application = get_asgi_application()
项目的配置文件介绍
settings.py
settings.py
是 Django 项目的主要配置文件,包含了数据库、静态文件、模板、中间件、应用等的配置。
# settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = 'your-secret-key'
DEBUG = True
ALLOWED_HOSTS = []
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myshop.apps.cart',
'myshop.apps.catalog',
'myshop.apps.checkout',
'myshop.apps.payment',
'myshop.apps.order',
'myshop.apps.customer',
]
MIDDLE