1. 介绍 Python Django
Python Django 是一个使用 Python 语言编写的开源 Web 框架,可以帮助开发人员快速、高效地开发 Web 应用程序。
1.1 为什么选择 Python Django
易于上手:Python 语言简洁易学,对于初学者来说简单易懂;Django 抽象程度高:Django 将很多常用的 Web 开发操作封装成高层次的 API,简化了开发过程。
1.2 Python Django 的特点
MTV 模式:Django 使用 Model-Template-View(模型-模板-视图)的软件设计模式,将 Web 应用程序的各个部分分离,使得代码更加清晰易维护;ORM 和数据库支持:Django 内置了良好的 Object-Relational Mapping(对象-关系映射)工具和对多种数据库的支持。
2. 安装 Python Django
在安装 Django 之前,需要先安装 Python,确保 Python 版本与 Django 版本兼容。
pip install django
3. Django 的三个主要部分
3.1 模型层
模型层是 Django Web 框架中的关键部分,它用于处理数据,并实现了数据库操作。
Django 中的 ORM(Object-Relational Mapping)框架提供了一种面向对象的数据库访问方法。
每个模型类都会映射到一个数据库表。
# 模型类定义
from django.db import models
class User(models.Model):
name = models.CharField(max_length=50)
age = models.IntegerField()
# 数据库迁移
python manage.py makemigrations
python manage.py migrate
3.2 视图层
视图层是 Django Web 框架的核心部分,用于控制 Web 应用程序的行为。
在 Django 中,视图是一个处理 HTTP 请求并返回 HTTP 响应的 Python 函数。
# 视图函数定义
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
3.3 模板层
模板层是 Django Web 框架中的另一个重要部分,用于处理 Web 应用程序的展示逻辑。
模板是一个包含静态文本、变量和标记的文件,可以用来生成 HTML、XML 或其他文本格式。
# 模板文件
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
<p>{{ content }}</p>
</body>
</html>
4. Django 的其他常用功能
4.1 静态文件处理
Django 提供了一种方便的方法来处理静态文件,例如 CSS、JavaScript 和图像文件。
在项目 settings.py 文件中设置 STATICFILES_DIRS 变量来指定静态文件的路径。
# settings.py
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
# 使用 static 作为静态文件目录的 URL
{% load static %}
4.2 表单处理
Django 提供了一种方便的方法来处理 Web 表单。
在视图函数中,可以通过 request.POST 获取表单数据。
# forms.py
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField()
email = forms.EmailField(required=False)
message = forms.CharField(widget=forms.Textarea)
# views.py
from django.shortcuts import render
from .forms import ContactForm
def contact(request):
form = ContactForm()
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# 处理表单数据
pass
return render(request, 'contact.html', {'form': form})
4.3 用户认证与授权
Django 提供了一些内置的功能来处理用户认证和授权。
可以使用内置的 User 模型和 AuthenticationMiddleware 中间件来实现用户认证和授权。
# 用户认证
from django.contrib.auth import authenticate, login, logout
# 用户登录
def user_login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
else:
pass
# 用户登出
def user_logout(request):
logout(request)
5. 总结
Python Django 是一个优秀的 Web 开发框架,具有易于上手、抽象程度高、使用方便等特点。
Django 的三个主要部分分别是模型层、视图层和模板层。
Django 还提供了其他常用功能,例如静态文件处理、表单处理以及用户认证与授权。