Django入门教程:从零构建Web应用
Django是一个高效、安全的Python Web框架,适合快速开发复杂应用。以下教程涵盖基础配置、模型设计、视图逻辑等核心内容,附带代码示例和最佳实践。
安装与环境配置
确保Python 3.8+已安装,通过pip安装Django:
pip install django
创建新项目并启动开发服务器:
django-admin startproject myproject
cd myproject
python manage.py runserver
访问http://127.0.0.1:8000
可见默认欢迎页。
项目结构解析
典型Django项目包含以下关键文件:
myproject/
├── manage.py # 项目管理脚本
└── myproject/├── __init__.py├── settings.py # 全局配置├── urls.py # 主路由└── wsgi.py # 生产部署入口
创建第一个应用
生成新应用blog
并注册到项目:
python manage.py startapp blog
在settings.py
中添加应用:
INSTALLED_APPS = [...,'blog.apps.BlogConfig',
]
模型设计示例
在blog/models.py
中定义文章模型:
from django.db import modelsclass Article(models.Model):title = models.CharField(max_length=200)content = models.TextField()pub_date = models.DateTimeField(auto_now_add=True)def __str__(self):return self.title
迁移数据库:
python manage.py makemigrations
python manage.py migrate
视图与URL路由
创建基础视图(blog/views.py
):
from django.shortcuts import render
from .models import Articledef article_list(request):articles = Article.objects.all()return render(request, 'blog/list.html', {'articles': articles})
配置URL路由(myproject/urls.py
):
from django.urls import path
from blog import viewsurlpatterns = [path('articles/', views.article_list),
]
模板系统实践
在blog/templates/blog/list.html
中创建模板:
<!DOCTYPE html>
<html>
<head><title>文章列表</title>
</head>
<body>{% for article in articles %}<div class="article"><h2>{{ article.title }}</h2><p>{{ article.content|truncatechars:100 }}</p></div>{% endfor %}
</body>
</html>
后台管理配置
在blog/admin.py
中注册模型:
from django.contrib import admin
from .models import Articleadmin.site.register(Article)
创建超级用户:
python manage.py createsuperuser
访问/admin
即可管理数据。
静态文件处理
在settings.py
中配置静态文件路径:
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / "static"]
示例CSS文件(static/css/style.css
):
.article {margin-bottom: 20px;padding: 15px;border: 1px solid #ddd;
}
Django Shell操作
通过交互式shell测试模型:
python manage.py shell
from blog.models import Article
Article.objects.create(title="测试文章", content="这是示例内容")
生产部署要点
推荐部署方式:
- 使用Gunicorn或uWSGI作为应用服务器
- Nginx反向代理处理静态文件
- PostgreSQL替代SQLite
- 设置
DEBUG=False
并配置ALLOWED_HOSTS
通过以上步骤可快速搭建功能完整的Django应用,后续可扩展用户认证、REST API等功能。官方文档提供深入细节:https://docs.djangoproject.com/