Proyecto de blog Django
Este capítulo te guía desde cero para crear un proyecto de blog con Django y comprender la estructura del proyecto y el ciclo de vida de las solicitudes.
Preparación del entorno
Django es un framework web de Python; primero debes verificar el entorno de Python.
Abre la terminal y comprueba la versión de Python (se requiere 3.8 o superior):
$ python3 --version Python 3.12.0
Crear un entorno virtual e instalar Django
El entorno virtual es una práctica estándar en proyectos Python; permite que cada proyecto tenga dependencias independientes sin interferir entre sí.
$ python3 -m venv venv # 创建虚拟环境 $ source venv/bin/activate # 激活虚拟环境(Windows:venv\Scripts\activate) (venv) $ pip install django # 在虚拟环境中安装 Django
Verifica si la instalación se realizó correctamente:
(venv) $ python -m django --version 5.0
Cada vez que abras una nueva terminal, primero debes ejecutar
source venv/bin/activateActivar el entorno virtual. La parte delante del indicador de la terminal(venv)indica que actualmente estás en el entorno virtual.
Crear un proyecto Django
Django proporcionadjango-admin startprojectcomando para inicializar el proyecto.
(venv) $ django-admin startproject blog_project (venv) $ cd blog_project
Después de ejecutarlo, se generará la siguiente estructura de directorios:
blog_project/ ├── manage.py # 项目管理入口(启动服务器、执行迁移、创建 admin 等) ├── blog_project/ # 项目配置包 │ ├── __init__.py # 标识这是一个 Python 包 │ ├── settings.py # 全局配置(数据库、中间件、模板、静态文件等) │ ├── urls.py # 根 URL 路由表 │ ├── wsgi.py # WSGI 部署入口(生产环境用) │ └── asgi.py # ASGI 部署入口(WebSocket 用)
Iniciar el servidor de desarrollo
(venv) $ python manage.py runserver Watching for file changes with StatReloader Performing system checks... System check identified no issues (0 silenced). Starting development server at http://127.0.0.1:8000/
Accede a http://127.0.0.1:8000/ en el navegador. Si ves la página de bienvenida de Django, el inicio fue exitoso.
El servidor de desarrollo tiene recarga automática: tras guardar cambios en el código, el servidor se reinicia solo. Pulsa Ctrl+C para detener el servidor.
Explicación de la configuración clave de settings.py
settings.pyEs el archivo de configuración central del proyecto Django; cada elemento de configuración tiene un significado claro.
| Elemento de configuración | Valor predeterminado | Función |
|---|---|---|
| DEBUG | True | Modo de desarrollo (debe establecerse en False al publicar) |
| DATABASES | SQLite | Configuración de la base de datos (SQLite por defecto, sin instalación adicional) |
| INSTALLED_APPS | Lista de aplicaciones integradas | Aplicaciones registradas en el proyecto |
| TEMPLATES | DjangoTemplates | Configuración del motor de plantillas |
| LANGUAGE_CODE | 'en-us' | Idioma (puedes cambiarlo a 'zh-hans') |
| TIME_ZONE | 'UTC' | Zona horaria (puedes cambiarla a 'Asia/Shanghai') |
Cambia el idioma y la zona horaria al entorno chino:
Ejemplo
LANGUAGE_CODE = 'zh-hans' # La interfaz de administración se muestra en chino
TIME_ZONE = 'Asia/Shanghai' # Zona horaria configurada como hora de Beijing
Crear la primera aplicación: blog
La organización de proyectos en Django es:El proyecto (Project) contiene múltiples aplicaciones (App)。
Cada App se encarga de un módulo funcional independiente (como blog, usuarios, comentarios).
(venv) $ python manage.py startapp blog
Después de ejecutarlo, se genera el directorio blog/:
blog/ ├── __init__.py ├── admin.py # 后台管理配置(第三章用到) ├── apps.py # 应用配置 ├── models.py # 数据库模型(第二章用到) ├── views.py # 视图函数(本章用到) ├── urls.py # 需要手动创建(应用级路由) └── migrations/ # 数据库迁移文件(第二章用到)
Después de crear la App, debes registrarla en settings.py:
Ejemplo
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # Añadido: registrar la aplicación blog
]
Ciclo de vida de una solicitud en Django
Comprender el flujo de una solicitud en Django ayuda a localizar rápidamente problemas más adelante.
El navegador introduce la URL → urls.py hace coincidir la ruta → views.py procesa la lógica → templates renderiza el HTML → se devuelve al navegador。
Estos tres pasos (URL → View → Template) son el patrón básico del desarrollo en Django.

Manos a la obra: primera página Django
Primer paso: escribir la función de vista (views.py)
Ejemplo
from django.shortcuts import render
# Función de vista: recibe request, devuelve response
def index(request):
# La función render: combina request + plantilla + datos, devuelve una respuesta HTML
return render(request, 'blog/index.html', {
'welcome': 'Bienvenido al blog de EJEMPLO',
'intro': 'Este es un sitio de exhibición de blog personal construido con Django.'
})
Segundo paso: crear el archivo de plantilla (templates)
Crea dentro del directorio blog/templates/blog/subdirectorio, y luego creaindex.html。
Ejemplo
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Blog de EJEMPLO</title>
<style>
body { font-family: sans-serif; max-width: 800px; margin: 0 auto; padding: 40px 20px; }
h1 { color: #2c3e50; }
</style>
</head>
<body>
<h1>{{ welcome }}</h1>
<p>{{ intro }}</p>
</body>
</html>
Las variables de plantilla de Django usan
{{ nombre de variable }}sintaxis, igual que las expresiones de interpolación de Vue3. Los datos del diccionario pasados a render en views.py se pueden usar directamente en la plantilla.
Tercer paso: configurar las rutas (urls.py)
Primero crea dentro de blog/urls.pycomo ruta a nivel de aplicación.
Ejemplo
from django.urls import path
from . import views
# Tabla de rutas de la aplicación
urlpatterns = [
path('', views.index, name='index'), # La ruta vacía coincide con / página de inicio
]
Luego, en el urls.py a nivel de proyecto, usainclude()para incluir las rutas de la aplicación:
Ejemplo
from django.contrib import admin
from django.urls import path, include # Importar include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')), # Conectar las rutas de la aplicación blog a la ruta raíz
]
Resumen del capítulo
En este capítulo completaste tres cosas: crear un entorno virtual e instalar Django, inicializar el proyecto con startproject/startapp y escribir la cadena completa View → Template → URL.
Conclusiones clave: comprender la estructura jerárquica proyecto/aplicación de Django y dominar el patrón de desarrollo en tres pasos URL → View → Template.
Otras extensiones