Django 是一个高级 Python Web 框架,遵循 MTV(Model-Template-View)模式(类似 MVC),提供:
# models.py
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
python manage.py makemigrations
→ migrate
Article.objects.filter(title__contains="Django")
# views.py
from django.shortcuts import render
from .models import Article
def article_list(request):
articles = Article.objects.all()
return render(request, 'blog/list.html', {'articles': articles})
HttpRequest
,返回 HttpResponse
class ArticleListView(ListView)
{% for article in articles %}
{{ article.title }}
{{ article.content|truncatewords:30 }}
{% endfor %}
{{ variable }}
{% for %}
、{% if %}
|lower
、|date:"Y-m-d"
# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('articles/', views.article_list, name='article-list'),
]
、
{% url 'article-list' %}
# admin.py
from django.contrib import admin
from .models import Article
@admin.register(Article)
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'pub_date')
/admin
界面# forms.py
from django import forms
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
fields = ['title', 'content']
form.is_valid()
{% csrf_token %}
from django.contrib.auth import authenticate, login
def login_view(request):
user = authenticate(username=request.POST['username'], password=request.POST['password'])
if user:
login(request, user)
User
、Group
、Permission
@login_required
myproject/
├── manage.py # 命令行工具
├── myproject/ # 项目配置
│ ├── settings.py # 数据库/中间件等设置
│ ├── urls.py # 根路由
│ └── wsgi.py # 生产部署入口
└── myapp/ # 应用模块
├── migrations/ # 数据库迁移文件
├── admin.py # Admin 配置
├── models.py # 数据模型
├── views.py # 业务逻辑
└── templates/ # 模板文件
# 安装
pip install django
# 创建项目
django-admin startproject myproject
cd myproject
# 创建应用
python manage.py startapp myapp
# 运行开发服务器
python manage.py runserver
users
、blog
)python-decouple
管理敏感配置STATICFILES_DIRS
+ collectstatic
select_related()
、prefetch_related()
@cache_page
DEBUG=False
生产环境ALLOWED_HOSTS
严格配置TestCase
、pytest-django
通过以上内容,您能快速理解 Django 的核心机制。建议从官方教程(https://docs.djangoproject.com/)开始实践,逐步构建完整项目!