温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

django如何编写视图函数

发布时间:2026-10-26 01:39:41 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 Django 中,视图函数(View Function) 是用来接收 HTTP 请求并返回 HTTP 响应的函数。下面从基础到常见用法逐步说明。


一、最基础的视图函数

# views.py
from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello, Django!")

说明:

  • request:必填参数,代表 HTTP 请求对象
  • 返回值必须是 HttpResponse 或其子类

二、配置 URL 映射到视图

Django 3.x / 4.x(推荐方式)

# urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello),
]

访问:http://127.0.0.1:8000/hello/


三、处理不同请求方法(GET / POST)

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}")

四、获取请求参数

1️⃣ GET 参数

def search(request):
    keyword = request.GET.get("q", "")
    return HttpResponse(f"搜索关键词:{keyword}")

访问:/search/?q=django


2️⃣ 路径参数(URL 传参)

# urls.py
path('article/<int:article_id>/', views.article)
def article(request, article_id):
    return HttpResponse(f"文章ID:{article_id}")

五、返回 HTML 页面(render)

通常视图会返回模板:

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/")

七、返回 JSON(API 视图)

from django.http import JsonResponse

def api_user(request):
    data = {
        "id": 1,
        "name": "Tom"
    }
    return JsonResponse(data)

八、使用装饰器

只允许 POST

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


如果你愿意,我可以:

  • 给你一个完整 Django 项目示例
  • 讲 Django REST Framework 视图
  • 或针对 某个具体功能(登录、上传、分页) 写示例

你想学哪一部分?

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手