Django 是一个功能强大且完整的 Python Web 框架,适用于快速开发高性能的 Web 应用。以下是 Django 框架的基础知识,包括模型、视图、模板、ORM 和 Admin 管理。
首先,确保你已经安装了 Django。你可以使用 pip 安装:
pip install django
使用 django-admin
命令来创建一个新的 Django 项目:
django-admin startproject myproject
cd myproject
在项目目录中,创建一个新的 Django 应用:
python manage.py startapp myapp
模型是与数据库交互的核心。每个模型对应数据库中的一张表。让我们在 myapp/models.py
中定义一个简单的模型:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
title
是一个字符字段。content
是一个文本字段。created_at
自动记录创建时间。在使用模型之前,你需要将其迁移到数据库中。
首先,生成迁移文件:
python manage.py makemigrations
然后,执行迁移,将模型应用到数据库:
python manage.py migrate
视图负责处理 HTTP 请求,并返回 HTTP 响应。让我们在 myapp/views.py
中定义一个简单的视图:
from django.shortcuts import render
from .models import Post
def index(request):
posts = Post.objects.all()
return render(request, 'index.html', {'posts': posts})
这个视图查询所有的 Post
对象并渲染一个模板 index.html
。
模板用于生成动态的 HTML 内容。创建一个模板文件 templates/index.html
,并将其用于显示帖子列表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Post List</title>
</head>
<body>
<h1>Posts</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }} - {{ post.created_at }}</li>
{% endfor %}
</ul>
</body>
</html>
在 myapp
目录中创建 urls.py
文件,并配置 URL 映射:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
然后在项目的 urls.py
中包含这个应用的 URL:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
Django 的 ORM 允许你使用 Python 代码与数据库交互。下面是一些常见的 ORM 操作:
Post.objects.all()
Post.objects.get(id=1)
Post.objects.create(title="My Post", content="This is a post")
post = Post.objects.get(id=1); post.title = "Updated Title"; post.save()
post = Post.objects.get(id=1); post.delete()
Django 提供了一个强大的管理界面。首先,将你的模型注册到 Admin 中。在 myapp/admin.py
中:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
启动开发服务器:
python manage.py runserver
然后在浏览器中访问 http://127.0.0.1:8000/admin/
,你将看到 Django 自动生成的管理界面。在这里,你可以添加、编辑和删除数据库中的内容。
通过以上步骤,你已经掌握了 Django 的基础,包括模型、视图、模板、ORM 以及 Admin 管理。这些是 Django 开发的核心概念。接下来,你可以进一步学习 Django 的高级功能,如表单处理、用户认证、权限系统、中间件等。