django之视图函数

简要

路由映射着视图函数,当路由被访问后,就会到视图函数来处理请求,
当视图函数处理完请求后返回给客户端浏览器来响应,所以视图函数起着承上启下的作用。
在django中有视图函数和视图类来处理请求,这里先学习基本的视图函数。
学习视图函数:基本结构、内部功能、返回。

基本结构

### 基本结构
def view_func(request):
    # 在这里你可以处理请求
    return HttpResponse     # 在这里返回响应对象
​
​
### 举例(仅供了解结构):
def login(request):
    if request.method = "POST"
        get_user = request.POST.get('user')
        get_psd = request.POST.get('psd')
    context = {
        'user':get_user,
        'psd':get_psd,
    }
    return render(request,'index.html',context}     # render() -> HttpResponse

内部功能

### 在这里只列举常用、部分、简单的功能方法实现,具体的还需要看对应专题深入学习
​
### reuqest对象
    ## request对象本质上是WSGIRequest对象
        from django.core.handlers.wsgi import WSGIRequest(自行查看)
    ## request对象的实例属性
        request.method  # 获取请求方法
        request.path    # 获取请求路径
    ## request对象的实例方法
        # 因为使用了property属性化,所以调用时不用加括号
        request.GET -> QueryDict        # get请求
        request.POST -> QueryDict       # post请求
        request.COOKIES -> dict         # 请求中的COOKIE
    ## session
        request.session[key] = value                     # 设置session
        request.session.get(key)    request.session[key]  # 获取session
        del request.session[key]                         # 删除session
        # 其他而更多session的操作将在session小节学习
    ## cookie
        request.COOKIES.get(key)    # 获取cookie
        
​
        
### response对象
    ## django中的response对象实现类是:
        HttpResponse
    ## 导入HttpResponse:
        from django.shortcuts import HttpResponse
        from django.http import HttpResponse
    ## cookie修改
        response.set_cookie(key,value)      # 设置cookie
        response.delete_cookie(key)         # 删除cookie

返回

### 首先要铭记返回一定是一个响应对象,即HttpResponse对象或其子类对象
​
​
###  HttpResponse对象
    ## 导入:
        from django.shortcut import HttpResponse
    ## 举例:
        return HttpResponse("hello")
        return HttpResponse("<h1>hello</h1>")
​
    
###  html模板:通过render()
    ## 导入:from django.shortcuts import render
    ## render(request, template_name, context=None, content_type=None, status=None, using=None)
        request:请求对象
        template_name:str,模板名称
        context:dict,上下文,作用于模板的数据
    ## 举例
        return render(request,"my.html",context={'key':'value'})
​
    
###  重定向
    ## 重定向:跳转到其他路由来处理请求
    ## 在这里我们就可以应用url别名了
    ## 导入
        from django.shortcuts import redirect,reverse
    ## 举例
        return rendirect(reverse('url_name'))
 
​
### JsonResponse对象
    ## 导入:
        from django.http import JsonResponse
    ## 举例:
        return JsonResponse({'name':'joden'})
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值