1. Introducción al proyecto
- En este proyecto, complete el desarrollo del centro comercial de comercio electrónico y desarrolle un centro comercial simplificado similar a Taobao
1. Introducción al proceso de desarrollo del proyecto
1.1 Diseño de arquitectura
- Análisis de posibles puntos técnicos
- Si los extremos delantero y trasero están separados
- Qué marcos se utilizan en la interfaz
- Qué marcos se utilizan en el backend
- Que base de datos elegir
- Cómo implementar el almacenamiento en caché
- Ya sea para construir un servicio distribuido
- Cómo administrar el código fuente
1.2 Diseño de base de datos
- El diseño de la tabla de la base de datos es muy importante
- De acuerdo con los requisitos del proyecto, diseñar tablas de base de datos adecuadas
- Si la tabla de la base de datos está diseñada de manera irrazonable en la etapa inicial, será difícil de mantener a medida que aumente la demanda en la etapa posterior.
1.3 Prueba de integración
- Preste atención al informe de errores de la plataforma de comentarios de prueba durante la fase de prueba
2. Análisis de la demanda de proyectos
2.1 Razones para el análisis de la demanda:
- Puede comprender el proceso comercial y los principales requisitos comerciales del proyecto en su conjunto.
- En el proyecto, desarrollo impulsado por la demanda. Es decir, los desarrolladores necesitan lograr una lógica empresarial con requisitos como objetivo.
2.2 Método de análisis de requisitos:
- En la empresa, la demanda se analiza con la ayuda de diagramas de prototipos de productos.
- Una vez que se completa el análisis de requisitos, el front-end desarrolla la página del front-end de acuerdo con el diagrama del prototipo del producto, y el back-end desarrolla el negocio correspondiente y el procesamiento de respuesta.
2.3 Contenido del análisis de la demanda:
- Páginas y sus procesos comerciales y lógica comercial.
2.4 Pasos principales
2.4.1 Introducción a la página principal del proyecto (omitido)
2.4.2 Resumen de los principales módulos del proyecto
Módulo | Características |
---|---|
verificación | Verificación gráfica, verificación por SMS |
usuario | Registro, inicio de sesión, centro de usuarios |
vale la pena mencionar | Inicio de sesión de QQ |
Anuncio de la página de inicio | Anuncio de la página de inicio |
Producto | Lista de productos, búsqueda de productos, detalles del producto |
Carro de compras | Gestión de carritos de compras, fusión de carritos de compras |
Pedido | Confirmar pedido, enviar pedido |
Pagar | Pago de Alipay, evaluación del producto del pedido |
Sistema MIS | Estadísticas de datos, gestión de usuarios, gestión de autoridades, gestión de mercancías, gestión de pedidos |
3. Diseño de la arquitectura del proyecto
3.1 Modelo de desarrollo de proyectos
- El modelo de desarrollo de este proyecto es el siguiente:
Opciones | Selección de tecnología |
---|---|
Modelo de desarrollo | Los extremos delantero y trasero no están separados |
Marco de back-end | Django |
Marco de front-end | Vue.js |
- Descripción
- El modelo de desarrollo que no separa el front y el back end es mejorar el posicionamiento en los motores de búsqueda, es decir, el SEO. Especialmente la página de inicio, la página de detalles y la página de lista.
- La página debe actualizarse parcialmente: elegiremos usar Vue.js para lograrlo.
3.2 Mecanismo de operación del proyecto
2. Creación y configuración de proyectos
1. Preparación
1.1 Crear un entorno virtual del centro comercial
- Cree un directorio para el proyecto e ingrese, ejecute pipenv shell
pipenv shell
1.2 Instale el marco de Django y los paquetes relacionados
# 安装django环境
pip install django==2.2
# 安装mysql驱动
pip install mysqlclient
# 安装redis驱动
pip install django-redis
1.3 Crear un proyecto de Django en Meido Mall
django-admin startproject lgshop
- Si lo ejecuta ahora, aparecerá el siguiente mensaje
. Cambie el parámetro de los parámetros de secuencia de comandos de las configuraciones de ejecución / depuración a runserver
1.4 Otras preparaciones
- Preparación de la base de datos mysql: mysql 5.7
- Preparación de la base de datos de Redis: redis 2.1
2. Configurar el entorno de desarrollo
- El entorno del proyecto se divide en entorno de desarrollo y entorno de producción.
- Entorno de desarrollo: se utiliza para escribir y depurar el código del proyecto.
- Entorno de producción: utilizado para la implementación y operación en línea del proyecto.
2.1 Especificar el archivo de configuración del entorno de desarrollo
- Cuando django crea el proyecto, especifica automáticamente el archivo de configuración en la función main () de manager.py y lo modifica al archivo de configuración especificado por usted mismo.
def main():
"""Run administrative tasks."""
# django默认的配置文件
# os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lgshop.settings')
# 开发环境的配置文件
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'lgshop.dev')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
- Nota: Solo se usará cuando el proyecto wsgi.py se lance oficialmente y se puede ignorar durante el desarrollo, pero no se debe eliminar.
2.2 Configurar la base de datos MySQL
- Modificar el archivo de configuración: el archivo de configuración del entorno de desarrollo de este proyecto es dev.py
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# mysql 版本 5.7
'ENGINE': 'django.db.backends.mysql',
'NAME': 'lg_shop', # 数据库名字
'USER': 'root', # 数据库用户名
'PASSWORD': 'root', # 数据库密码
'HOST': '127.0.0.1', # 数据库地址
'PORT': 3306 # 数据库端口号
}
}
- Necesita crear root de base de datos mysql / root @ lg_shop
2.3 Configurar la base de datos de redis
- El redis predeterminado se puede establecer en la base de datos 0 (se puede cambiar)
- La sesión puede salvar la base de datos No. 1
- Si se guardan otros datos en otras bibliotecas.
- Cada vez que agrega uno, puede cambiar el nombre de uno y modificar los parámetros relacionados
# Redis缓存 0-15 16
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
},
"session": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
2.4 Configurar el registro del proyecto
- Propósito del registro del proyecto de configuración: utilice archivos de registro para registrar la información de salida del sitio web
LOGGING = {
'version': 1,
'disable_existing_loggers': False, # 是否禁用已经存在的日志器
'formatters': { # 日志信息显示的格式
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
},
},
'filters': { # 对日志进行过滤
'require_debug_true': { # django在debug模式下才输出日志
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': { # 日志处理方法
'console': { # 向终端中输出日志
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file': { # 向文件中输出日志
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, 'logs/lgshop.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
},
},
'loggers': { # 日志器
'django': { # 定义了一个名为django的日志器
'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志
'propagate': True, # 是否继续传递日志信息
'level': 'INFO', # 日志器接收的最低日志级别
},
}
}
- Cree un directorio de registros en el directorio raíz
2.4 Configurar archivos estáticos de front-end
- Necesita usar archivos estáticos en proyectos de centros comerciales, como css, imágenes, js, etc.
2.4.1 Preparar archivos estáticos
Crea un nuevo directorio estático en el directorio del proyecto.
2.4.2 Especificar la ruta de carga del archivo estático
# ./lgshop/dev.py
# 指定加载静态文件的路径前缀
STATIC_URL = '/static/'
# 静态文件加载路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
2.5 Archivo de plantilla de configuración
2.5.1 Preparar archivos de plantilla
Cree un nuevo directorio de plantillas en el directorio del proyecto.
2.5.2 Especifique la ruta de carga del archivo de plantilla
# ./lgshop/dev.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
3. Establecer la ruta del paquete guía
- Para facilitar la gestión de todas las aplicaciones, cree un directorio de aplicaciones para almacenar todas las aplicaciones.
3.1 Crear una sub-aplicación de módulo de usuario
-Ejemplo para crear aplicación de usuarios
python ..\manage.py startapp users
3.2 Definir un método de visualización para los usuarios
# ./apps/user/views.py
from django.shortcuts import render
from django.views import View
class RegisterView(View):
def get(self, request):
"""提供用户注册页面"""
return render(request, 'register.html')
- Nota: cree register.html en el directorio ./templates/
3.3 Registrar aplicación
- Hay dos métodos: registro directo; configurar el registro de la ruta de la guía del paquete
3.3.1 Registro directo
3.3.2 Establecer el registro de la ruta del paquete guía
- Nota: Ver la ruta del paquete de la guía: print (sys.path)
3.4 Registrar el enrutamiento de la aplicación
- Registre la ruta en la aplicación o registre la ruta total primero
3.2.1 Registrar la ruta dentro de la aplicación
# ./apps/users/urls.py
from django.urls import path
from . import views
app_name = 'users'
urlpatterns = [
# 注册
path('register/', views.RegisterView.as_view(), name='register'),
]
3.2.2 Registrar la ruta total
# ./lgshop/urls.py
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('users/', include('apps.users.urls')),
]