Django 是一个高级的 Python Web 开发框架,它遵循“Don't Repeat Yourself”(DRY) 原则,旨在简化Web应用的构建过程。在本教程中,我们将探讨 Django 的基础知识,通过简单的示例来了解如何使用 Django 完成基本的 Web 开发流程。
一、Django 概述
Django 提供了 MVC(Model-View-Controller)架构的变种——MTV(Model-Template-View),使得开发者可以高效地创建功能丰富的 Web 应用。它包含以下几个核心组件:
1. **模型 (Model)**:负责数据模型的定义,基于 Python 类,与数据库交互。
2. **模板 (Template)**:用于生成 HTML 或其他格式的响应,是声明式的静态文件,可以嵌入动态内容。
3. **视图 (View)**:处理用户请求,获取数据,调用模板,并返回响应。视图是业务逻辑的核心部分。
二、安装与设置
确保已经安装了 Python,然后通过 pip 来安装 Django:
```
pip install django
```
接下来,创建一个新的 Django 项目和应用:
```
django-admin startproject myproject
cd myproject
python manage.py startapp myapp
```
三、URL 分发
Django 使用 URLconf(URL 配置)系统来映射 URL 到视图函数。在 `myproject/urls.py` 中配置项目级别的 URL,而在 `myapp/urls.py` 中配置应用级别的 URL。
四、模型 (Model)
在 `myapp/models.py` 中定义模型类,例如:
```python
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publish_date = models.DateField()
```
运行 `makemigrations` 和 `migrate` 命令来创建数据库表:
```
python manage.py makemigrations myapp
python manage.py migrate
```
五、视图 (View)
在 `myapp/views.py` 文件中创建视图函数,比如:
```python
from django.shortcuts import render
from .models import Book
def book_list(request):
books = Book.objects.all()
return render(request, 'myapp/book_list.html', {'books': books})
```
六、模板 (Template)
创建 `myapp/templates/myapp/book_list.html` 文件,编写模板:
```html
{% for book in books %}
<h2>{{ book.title }}</h2>
<p>作者: {{ book.author }}</p>
<p>出版日期: {{ book.publish_date }}</p>
{% endfor %}
```
七、URL 映射
在 `myapp/urls.py` 和 `myproject/urls.py` 中配置 URL,将视图关联到特定的 URL。
八、运行服务器
启动 Django 开发服务器:
```
python manage.py runserver
```
现在,访问 http://127.0.0.1:8000/ ,你应该能看到书籍列表页面。
这只是 Django 基础知识的冰山一角。随着深入学习,你将了解更多的概念,如表单处理、用户认证、中间件、缓存、管理后台等。Django 还支持 RESTful API 开发,以及集成各种第三方库,使得构建复杂 Web 应用变得简单。不断探索和实践,你将能够熟练掌握这个强大的框架。