18.1 建立项目
18.1.1 制定规范
-
定义项目目标:明确应用的核心功能
-
创建项目文档:用README.md记录技术栈和开发流程
-
规划目录结构:建议遵循Django官方推荐的项目布局
18.1.2 建立虚拟环境
在命令行执行:
python
python -m venv ll_env
说明:
-
venv是Python内置虚拟环境模块
-
ll_env是自定义环境名称,隔离项目依赖
18.1.3 激活虚拟环境
Windows系统:
ll_env\Scripts\activate.bat
Linux/macOS:
source ll_env/bin/activate
激活后命令提示符前显示(环境名)表示成功
18.1.4 安装Django
在激活的虚拟环境中执行:
python
pip install django==4.2.0
说明:
-
指定版本号可保证环境一致性
-
pip是Python包管理器,自动处理依赖关系
18.1.5 创建Django项目
执行命令:
django-admin startproject learning_log .
说明:
-
startproject是项目管理命令
-
末尾的.表示在当前目录创建项目
-
生成核心文件:settings.py, urls.py, wsgi.py等
18.1.6 创建数据库
执行迁移命令:
python
python manage.py migrate
功能说明:
-
生成默认的SQLite数据库文件db.sqlite3
-
创建Django内置应用(如admin,auth)的数据库表
18.1.7 查看项目
启动开发服务器:
python
python manage.py runserver
出现火箭图标页面表示项目创建成功
18.2 创建应用程序
18.2.1 定义模型
在models.py中添加:
python
from django.db import models
class Topic(models.Model):
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.text
语法解析:
-
继承models.Model创建数据模型
-
CharField定义字符类型字段,必须指定max_length
-
DateTimeField的auto_now_add参数自动设置创建时间
-
__str__方法定义对象显示格式
18.2.2 激活模型
修改settings.py的INSTALLED_APPS:
python
INSTALLED_APPS = [
...
'learning_logs',
]
执行迁移命令:
python manage.py makemigrations learning_logs
python manage.py migrate
说明:
-
makemigrations生成迁移文件
-
migrate应用数据库变更
18.3 创建页面
18.3.2 编写视图
示例视图函数:
python
from django.shortcuts import render
def index(request):
return render(request, 'learning_logs/index.html')
功能说明:
-
request参数包含HTTP请求信息
-
render函数将模板渲染为HTML响应
-
模板路径遵循app/templates/app/结构
18.3.3 编写模板
创建templates/learning_logs/index.html:
html
<html>
<head>
<title>Learning Log</title>
</head>
<body>
<h1>Learning Log Homepage</h1>
<p>Welcome to your knowledge base.</p>
</body>
</html>
模板语法说明:
-
使用标准HTML语法
-
后续可通过Django模板语言添加动态内容
18.4.1 模板继承
基础模板base.html:
html
<html>
<head>
<title>{% block title %}{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
子模板使用:
html
{% extends "learning_logs/base.html" %}
{% block title %}Topics{% endblock %}
{% block content %}
<ul>
{% for topic in topics %}
<li>{{ topic.text }}</li>
{% endfor %}
</ul>
{% endblock %}
继承机制说明:
-
extends声明继承关系
-
block定义可替换内容区域
-
使用模板标签{% for %}实现循环逻辑
18.5 小结
本章完整流程:
-
创建虚拟环境隔离依赖
-
安装Django并初始化项目
-
定义数据模型和业务逻辑
-
通过视图函数处理请求
-
使用模板系统渲染页面
-
通过URL配置路由请求
关键命令总结:
-
python manage.py startapp [应用名] 创建新应用
-
python manage.py createsuperuser 创建管理员
-
python manage.py shell 进入Django交互环境
注意:所有代码块中的缩进使用4个空格,Django严格要求语法格式。模型修改后必须执行迁移命令才能生效,模板文件需要放在正确目录路径下。