Práctica del proyecto Django (centro comercial): 1. Preparación del proyecto

Inserte la descripción de la imagen aquí

(Según el contenido de la transmisión en vivo del maestro)

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

Inserte la descripción de la imagen aquí

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

Inserte la descripción de la imagen aquí

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
    Inserte la descripción de la imagen aquí
    . Cambie el parámetro de los parámetros de secuencia de comandos de las configuraciones de ejecución / depuración a runserver
    Inserte la descripción de la imagen aquí

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.
    Inserte la descripción de la imagen aquí
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
    Inserte la descripción de la imagen aquí
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
    Inserte la descripción de la imagen aquí

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
    Inserte la descripción de la imagen aquí
# 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
    Inserte la descripción de la imagen aquí
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

Inserte la descripción de la imagen aquí

# ./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

Inserte la descripción de la imagen aquí

# ./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
Inserte la descripción de la imagen aquí

python ..\manage.py startapp users 

3.2 Definir un método de visualización para los usuarios

Inserte la descripción de la imagen aquí

# ./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

Inserte la descripción de la imagen aquí

3.3.2 Establecer el registro de la ruta del paquete guía

Inserte la descripción de la imagen aquí

  • 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

Inserte la descripción de la imagen aquí

# ./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

Inserte la descripción de la imagen aquí

# ./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')),
]

4. Directorios y archivos relacionados

Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/laoluobo76/article/details/112935168
Recomendado
Clasificación