1. Django项目搭建与环境配置
1.1 Python环境准备
在开始Django项目之前,确保你的开发环境已经安装了Python 3.8或更高版本。我强烈推荐使用Python 3.9或3.10,因为这些版本在性能和稳定性方面都有显著提升。可以通过以下命令检查Python版本:
bash复制python --version
# 或者
python3 --version
如果你需要管理多个Python版本,可以考虑使用pyenv工具。它能让你在同一台机器上轻松切换不同版本的Python环境。安装pyenv后,设置全局Python版本:
bash复制pyenv install 3.10.6
pyenv global 3.10.6
1.2 虚拟环境创建
使用虚拟环境是Python开发的最佳实践,它能将项目依赖与系统Python环境隔离。创建和激活虚拟环境的步骤如下:
bash复制# 创建虚拟环境
python -m venv venv
# 激活虚拟环境(Linux/macOS)
source venv/bin/activate
# 激活虚拟环境(Windows)
.\venv\Scripts\activate
激活虚拟环境后,你的命令行提示符前会显示(venv)字样。这表示你现在处于虚拟环境中,所有后续安装的包都只会影响当前项目。
1.3 Django安装与验证
在虚拟环境中安装Django 4.2.8(本文使用的版本):
bash复制pip install django==4.2.8
安装完成后,验证Django是否安装成功:
bash复制django-admin --version
这个命令应该输出"4.2.8"。如果看到版本号,说明Django已经正确安装。
1.4 开发工具选择
对于Django开发,我推荐以下两种IDE:
- PyCharm(社区版):JetBrains出品,专为Python开发优化,内置Django项目模板,调试功能强大。
- VS Code:轻量级但功能强大,配合Python插件和Django插件,可以提供接近PyCharm的开发体验。
我个人更倾向于使用PyCharm,因为它对Django项目有更好的原生支持,特别是模板语法高亮和URL跳转功能。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 创建Django项目与应用
2.1 项目初始化
使用django-admin命令创建项目骨架:
bash复制django-admin startproject django_demo
cd django_demo
这个命令会创建一个名为django_demo的目录,里面包含项目的基本结构。关键文件和目录包括:
manage.py:项目管理脚本,用于运行开发服务器、创建应用、执行数据库迁移等。django_demo/:项目主目录,包含全局配置。settings.py:项目设置文件(数据库配置、应用注册等)。urls.py:项目URL路由配置。wsgi.py:WSGI应用入口,用于生产环境部署。
2.2 创建应用
Django项目由多个应用组成,每个应用实现特定的功能。创建blog应用:
bash复制python manage.py startapp blog
应用目录结构如下:
code复制blog/
├── migrations/ # 数据库迁移文件
├── __init__.py
├── admin.py # 管理后台配置
├── apps.py # 应用配置
├── models.py # 数据模型定义
├── tests.py # 测试用例
└── views.py # 视图函数
2.3 注册应用
要让Django识别我们的blog应用,需要在settings.py中进行注册:
python复制INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 新增我们的应用
]
注意:Django应用需要显式注册后才能使用其模型、视图等功能。忘记注册是新手常见错误之一。
2.4 启动开发服务器
验证项目是否配置正确:
bash复制python manage.py runserver
访问http://127.0.0.1:8000/,你应该能看到Django的默认欢迎页面。如果看到这个页面,说明项目基础搭建成功。
3. 视图(Views)开发
3.1 函数视图基础
Django视图是处理Web请求并返回响应的Python函数。我们首先创建两个基础视图:
python复制# blog/views.py
from django.http import HttpResponse
def index(request):
"""首页视图"""
return HttpResponse("欢迎来到我的博客!")
def article_detail(request, article_id):
"""文章详情视图"""
return HttpResponse(f"你正在查看第 {article_id} 篇文章")
3.2 URL路由配置
视图需要通过URL映射才能被访问。Django的URL配置分为两层:项目级和应用级。
应用级URL配置(blog/urls.py):
python复制from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('article/<int:article_id>/', views.article_detail, name='article_detail'),
]
项目级URL配置(django_demo/urls.py):
python复制from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')),
]
这种分层设计使得应用可以更容易地在不同项目中复用。
3.3 视图参数详解
在article_detail视图中,我们使用了URL参数<int:article_id>。Django支持多种类型的URL参数:
