在 Django 中,视图函数(View Function) 是用来接收 HTTP 请求并返回 HTTP 响应的函数。下面从基础到常见用法逐步说明。
# views.py
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello, Django!")
说明:
request:必填参数,代表 HTTP 请求对象HttpResponse 或其子类# urls.py
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello),
]
访问:http://127.0.0.1:8000/hello/
from django.http import HttpResponse
def login(request):
if request.method == "GET":
return HttpResponse("显示登录页面")
if request.method == "POST":
username = request.POST.get("username")
return HttpResponse(f"登录用户:{username}")
def search(request):
keyword = request.GET.get("q", "")
return HttpResponse(f"搜索关键词:{keyword}")
访问:/search/?q=django
# urls.py
path('article/<int:article_id>/', views.article)
def article(request, article_id):
return HttpResponse(f"文章ID:{article_id}")
通常视图会返回模板:
from django.shortcuts import render
def index(request):
context = {
"name": "Django"
}
return render(request, "index.html", context)
index.html 放在 templates/ 目录下。
from django.shortcuts import redirect
def old_page(request):
return redirect("/new-page/")
from django.http import JsonResponse
def api_user(request):
data = {
"id": 1,
"name": "Tom"
}
return JsonResponse(data)
from django.views.decorators.http import require_POST
@require_POST
def submit(request):
return HttpResponse("提交成功")
from django.contrib.auth.decorators import login_required
@login_required
def profile(request):
return HttpResponse("个人中心")
from django.views import View
class HelloView(View):
def get(self, request):
return HttpResponse("GET 请求")
path('hello/', HelloView.as_view()),
✅ 函数名清晰
✅ 必须接收 request
✅ 必须返回 HttpResponse 类型
✅ 业务逻辑尽量简洁
✅ 复杂逻辑可拆分到 services.py
如果你愿意,我可以:
你想学哪一部分?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。