Djiango: la primera conferencia sobre los conocimientos introductorios de Djiango

Inserte la descripción de la imagen aquí

(Según el contenido de la conferencia en vivo del maestro cheney)

1. Entorno virtual

1 ¿Por qué necesitamos un entorno virtual?

  • Hasta ahora, todas nuestras instalaciones de paquetes de terceros se han instalado directamente a través de pip install xx, por lo que la instalación instalará ese paquete en su entorno Python a nivel de sistema. Pero hay un problema con esto, es decir, si escribe un sitio web con Django 1.10.x ahora, y su líder le dice que había un antiguo proyecto desarrollado con Django 0.9 para que lo mantenga, pero Django 1.10 ya no es compatible con alguna sintaxis de Django 0.9. En este momento, habrá un problema. ¿Cómo puedo tener los entornos Django 1.10 y Django 0.9 en mi computadora? En este momento, podemos solucionar este problema a través del entorno virtual.
  • Los métodos de creación de entornos virtuales más utilizados son: virtualenv, virtualenvwrapper y pipenv
  • Recomendar pipenv

2 、 pipenv

Dos, introducción al marco de Django

  • Django también sigue la idea de MVC, pero tiene su propio sustantivo llamado MVT

1. ¿Por qué utilizar un marco?

  • Para explicar mejor este problema, comparamos el proceso de desarrollo de una aplicación. A menudo, el desarrollo de una aplicación (aplicación web, aplicación del sistema) es lo mismo que el proceso de construcción de una casa. Es necesario sentar las bases, construir el esqueleto, y luego bloque por bloque.

  • ¿Qué pasa con el desarrollo de una aplicación? También requiere un buen diseño de arquitectura, modelado de bases de datos y luego un módulo por módulo utilizando implementación de código.
    Inserte la descripción de la imagen aquí

  • Si desarrolla una aplicación de software sin usar un marco, es esencialmente lo mismo que cuando construimos una casa, cada ladrillo y cada barra de acero deben ser producidos por nosotros mismos.

  • Obviamente, si necesitamos producir todos los ladrillos y todo tipo de material de construcción antes de construir una casa, la eficiencia de construir una casa es extremadamente baja y es posible que ni siquiera sea posible construir una casa para toda la vida.

  • Al desarrollar un sistema de aplicación, el uso del marco puede traer los siguientes beneficios:

    • Mejora enormemente la eficiencia del desarrollo
    • Haga que el desarrollo de aplicaciones sea más estandarizado y expandible
    • Deje que los programadores se centren más en la realización de la lógica empresarial, en lugar de un entorno básico repetitivo y complejo (como servidor web, implementación de bajo nivel, etc.)

2. ¿Por qué utilizar el framework Django y Flask?

  • En el mundo del lenguaje de programación Python, existen dos frameworks más poderosos y populares.
  • Estos dos marcos se utilizan ampliamente no solo en el desarrollo de back-end web y el desarrollo de microservicios, sino también en el desarrollo de sistemas ERP y el desarrollo de interfaces API.

3. La diferencia entre Django y Flask

3.1 Analogía de imágenes

Inserte la descripción de la imagen aquí

  • Si Django se parece a una casa bien decorada, con sus propios muebles de lujo, un conjunto muy completo de potentes electrodomésticos y todo, puedes mudarte con un bolso, lo cual es muy conveniente.
    Inserte la descripción de la imagen aquí
  • El frasco es similar a una casa rústica, quieres decorar la casa buscando materiales y comprando muebles para instalarlo tú mismo. Los materiales y muebles son muy ricos en variedad, y todos están listos para usar de forma gratuita, solo tómalos y úsalos.

3.2 La diferencia de volumen

  • Matraz:
    • Pequeño y flexible, permite a los programadores decidir qué funciones personalizar, lo cual es muy adecuado para sitios web pequeños.
    • Todavía es muy problemático para los trabajadores comunes decorar una casa rústica en un complejo urbano. Lo mismo ocurre con Flask para desarrollar un sitio web a gran escala. El desarrollo es más difícil, la estructura del código debe ser diseñada por usted mismo y el El costo de desarrollo depende de la capacidad y experiencia del desarrollador.
  • Django:
    • Grande y completo, extremadamente poderoso, es el pionero del marco web Python, con muchos usuarios y bibliotecas de terceros extremadamente ricas.
    • Es muy adecuado para el desarrollo de sitios web de nivel empresarial, pero para microservicios pequeños, siempre hay una sensación de "matar un pollo". Es grande y muy hinchado. El grado de personalización no es tan alto como Flask, y no es tan flexible como Flask.

3.3 Completa la misma función Hello World

  • Utilice Frasco para completar:
    • El primer paso es instalar Flask, pip install flask

    • El segundo paso es crear el archivo my_first_app.py y agregar el siguiente código
      Inserte la descripción de la imagen aquí

    • Para completar la función Hello World más simple, Flask solo necesita 7 líneas de código, lo cual es muy simple y conveniente.

  • Usa Django para completar:
    • El primer paso es instalar Django, pip install django

    • El segundo paso es crear un directorio de proyecto, django-admin startproject myproject

    • El tercer paso es crear una sub-aplicación, python manage.py startapp myapp

    • El cuarto paso es agregar el siguiente código al archivo views.py en el directorio donde se encuentra la aplicación myapp
      Inserte la descripción de la imagen aquí

    • El quinto paso es crear un archivo de enrutamiento urls.py en el directorio donde se encuentra la aplicación myapp y agregar el siguiente código
      Inserte la descripción de la imagen aquí

    • El sexto paso es agregar una ruta al archivo de ruta principal.

  • De los pasos de operación anteriores, se puede ver que para lograr la misma función, Flask suele ser más simple con menos código, mientras que Django involucra más procesos y la estructura del proyecto es clara, lo que tiene ventajas en proyectos a gran escala.

2.4 ¿Cómo elegir estos dos marcos en el trabajo real?

  • Si desea comprender el principio y el proceso de implementación del protocolo WSGI de desarrollo web de Python, o si desea personalizar componentes de manera flexible, hacer su aplicación por completo y desea implementar microservicios, le sugiero que elija Flask.
  • Si le preocupa la entrega final del producto y desea desarrollar rápidamente un gran sistema de aplicaciones (como sitios web de noticias, centros comerciales, ERP, etc.), entonces se recomienda que elija Django, que tiene todas las funciones que necesita. desea, así como las funciones inesperadas.
  • En resumen: el marco Djiango se recomienda para proyectos grandes, el marco matraz se recomienda para proyectos pequeños

Tres, principios de desarrollo de Django

  • Desarrollo rápido y principio SECO. No te repitas, no te repitas.
  • Introducción al manual oficial del sitio web

Sitio web oficial de Django: https://www.djangoproject.com/
Django Book2.0 versión del documento chino: http://djangobook.py3k.cn/2.0/chapter01/

Cuatro, creación del proyecto Django

  • Primero, instale Django en un entorno virtual
    • pip install django == 2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

1. Utilice pycharm (no recomendado)

Si pycharm es una versión profesional, puede usar pycharm para crear un proyecto de Django
Inserte la descripción de la imagen aquí

2. Usa la línea de comando

  • Crea un proyecto: abre la terminal, usa el comando: django-admin startproject [nombre del proyecto]
  • Hola: django-admin startproject django_demo
    Inserte la descripción de la imagen aquí
  • El comando se ejecuta con éxito sin ningún aviso, pero los archivos relacionados con el proyecto se crean automáticamenteInserte la descripción de la imagen aquí

3. Ejecute el proyecto Django

  • manage.py: archivo de inicio del proyecto (el matraz debe ser escrito a mano por usted mismo, Django se genera automáticamente), también conocido como archivo de entrada, es un archivo que interactúa con el proyecto

3.1 A través de la línea de comando: python manage.py runserver

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.2 Inicie el servicio de acuerdo con el puerto especificado: python manage.py runserver port

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.3 Inicie el servicio de acuerdo con el puerto especificado: python manage.py runserver port

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3.4 Migración de la base de datos: python manage.py migrate

  • Aunque el sistema se inicia normalmente, hay un mensaje de error:
    Inserte la descripción de la imagen aquí

3.4.1 Después de ejecutar la migración de la base de datos, no se informará ningún error al reiniciar

Inserte la descripción de la imagen aquí

3.4.2 ¿Por qué la migración puede tener éxito sin configurar mysql u otras bases de datos?

  • Cuando Django crea el proyecto, la base de datos sqlite3 se configura por defecto y la base de datos se migra a sqlite3 cuando se migra la base de datos, por lo que la migración puede ser exitosa sin iniciar la base de datos y configurar la base de datos.

    Inserte la descripción de la imagen aquí

3.5 Iniciar el proyecto en el editor de pycharm

  • En el proceso de desarrollo, la línea de comando se usa para iniciar el proyecto, lo cual no es conveniente para la depuración y la operación es muy engorrosa.

3.5.1 Para iniciar el proyecto en pycharm, debe configurar el parámetro de parámetros:

Inserte la descripción de la imagen aquí

  • Ejecute manage.py nuevamente

3.5.2 Inicie el proyecto en pycharm, no configure el parámetro de parámetros, la operación es la siguiente

Inserte la descripción de la imagen aquí

  • No se puede abrir en el navegador
  • La información relacionada es el documento de ayuda de manage.py: python manage.py help

4. Cree automáticamente la descripción del archivo principal del proyecto.

Inserte la descripción de la imagen aquí

4.1 el init .py: archivo de inicialización del proyecto

  • El archivo está vacío, agregue según sea necesario

4.2 settings.py: archivo de configuración

  • El sistema genera automáticamente muchos elementos de configuración

4.3 urls.py: archivo de configuración de enrutamiento

  • El sistema genera automáticamente una ruta: gestiona la ruta en segundo plano
from django.contrib import admin
from django.urls import path

urlpatterns = [
   path('admin/', admin.site.urls),
]

4.4 wigi.py: se usa al implementar

  • El sistema crea automáticamente algunos contenidos

Cinco, aplicación Django

  • La aplicación aquí no es el mismo concepto que la aplicación en el teléfono móvil

1. Por qué crear una aplicación

  • La aplicación Django es para separar diferentes códigos de función y dividirlos en carpetas para administrar
  • Buena gestión
  • El desarrollo colaborativo es más conveniente
  • Buen mantenimiento

2. Cree la aplicación: python manage.py startapp [nombre de la aplicación]

2.1 Como crear una aplicación de función de libro

  • Ejecute el siguiente comando en la línea de comandos: python manage.py app book
    -Después de que la creación se haya realizado correctamente, no aparecerá ningún mensaje.
    Inserte la descripción de la imagen aquí
  • Pero el sistema genera automáticamente una carpeta de libros y crea automáticamente los archivos relevantes necesarios para el proyecto.

2.2 Archivos en la aplicación

Inserte la descripción de la imagen aquí en ** Estilo en negrita **

2.2.1 init .py: El contenido es un módulo de Python

2.2.1 admin.py: relacionado con la gestión de fondos del sitio web

2.2.1 apps.py: relacionado con la gestión de fondos de sitios web

  • El sistema crea contenido automáticamente y declara la aplicación del libro.
from django.apps import AppConfig
class BookConfig(AppConfig):
    name = 'book'

2.2.2 models.py: escribe contenido relacionado con la base de datos, modelos, para la migración de la base de datos

  • El sistema crea automáticamente una referencia
from django.db import models
# Create your models here.

2.2.1 tests.py: un archivo para escribir código de prueba (casos) (no me importa por el momento)

2.2.3 views.py: recibe solicitudes, procesa datos e interactúa con M y T (lógica de código)

2.3 Registro de la solicitud

  • Para establecer la conexión entre la aplicación y el proyecto, la aplicación debe estar registrada.
  • Modifique el elemento de configuración INSTALLED_APPS en settings.py.

Six, la primera experiencia de Django

1. Mostrar hola mundo en la página de inicio del proyecto

  • Defina una función de índice en urls.py para devolver hola mundo
  • Agregar una referencia a los patrones de URL en urls.py
# ./django_demo/urls.py 
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse

def index(request):
    # name=reuqest.GET.get("name")
    return HttpResponse("hello world")

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
]

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí

2. El código anterior debe prestar atención a las especificaciones.

2.1 La función de enrutamiento debe tomar el parámetro de solicitud

  • Es decir, def nombre de la función (solicitud), de lo contrario, informará un montón de errores

2.2 El valor de retorno de la función de enrutamiento debe ser la clase HttpResponseBase o su subclase

  • De lo contrario, el tipo de datos del valor de retorno es incorrecto

3. Los mensajes de error son fáciles de informar al comienzo del proyecto:

3.1 "UnicodeDecodeError: el códec 'gbk' no puede decodificar el byte 0xa6 en la posición 9737: secuencia multibyte ilegal"

Inserte la descripción de la imagen aquí

  • Análisis de causa:
    • Este es un problema de codificación de debug.py en Django2.2, el código no es incorrecto, no aparecerá
  • Ruta de la solución:
    • Haga clic en debug.py arriba,
      Inserte la descripción de la imagen aquí
  • cambie a
    Inserte la descripción de la imagen aquí

3.2 El siguiente mensaje de error se muestra en la página:

Inserte la descripción de la imagen aquí

  • Análisis de causa:
    • Esto se debe a que a la función de enrutamiento le falta la solicitud Inserte la descripción de la imagen aquí
    • Ruta de la solución: def index (solicitud) está bien
      Inserte la descripción de la imagen aquí

3.3 El siguiente mensaje de error aparece en la página:

Inserte la descripción de la imagen aquí

  • Análisis de causa:

    • Este es el valor de retorno de la función de enrutamiento no usa HttpRespense ("Cadena de retorno")
      Inserte la descripción de la imagen aquí
    • Ruta de la solución: return HttpResponse ("hola mundo")
      Inserte la descripción de la imagen aquí

4. Muestra "Página de inicio del libro" en la página de inicio de la aplicación del libro.

  • Defina la función de libro en book / view.py y vuelva a "Página de inicio del libro"
  • Agregar una referencia a los patrones de URL en urls.py
# ./book/view.py 
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def book(request):
    return HttpResponse("图书首页")
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
from lesson01.django_demo.book import views

def index(request):
    # name=reuqest.GET.get("name")
    return HttpResponse("hello world")

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
    path('book/', views.book),
]

Inserte la descripción de la imagen aquí

El contenido anterior también se refiere al siguiente artículo:
Blog Garden Keyou "Entiende realmente la diferencia entre el marco Django y Flask en Python"

Supongo que te gusta

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