Django之view视图

作者: ropon 分类: Django 发布时间: 2018-11-21 17:21
from django.shortcuts import render,redirect

# Create your views here.
# 首先导入HttpResponse模块
from django.shortcuts import HttpResponse

import datetime

# request属性
# request.GET
# 获取类似于字典的对象QueryDict ,包含http get所有参数
# 比如?id=3&sid=4
# <QueryDict: {'id': ['3'], 'sid': ['4']}>
# 可通过request.GET.get('id')获取id的值

# request.POST
# 获取类似于字典的对象QueryDict ,包含http post所有参数
# <QueryDict: {'user': ['ropon'], 'pwd': ['123']}>
# 可通过request.POST.get('user')获取user的值
# POST请求可以为空 即表单中没有任何数据 QueryDict字典也会创建
# 要判断是否post请求 要使用if request.method == 'POST'
# 如果通过POST上传文件 文件信息将包含在FILES属性(request.FILES)
# 键值对的值是多个时 比如CheckBox类型input标签 select标签

# request.body
# 一个字符串 表示请求报文的主体
# b'user=1&pwd=2&shuiguo=pingguo&slist=se3'

# request.path
# request.get_full_path()
# 一个字符串 表示请求路径
# 比如url地址是 http://127.0.0.1:8000/app01/ request.path值是/app01/

# request.method
# 一个字符串 表示请求使用HTTP方法 比如GET POST

# request.encoding
# 一个字符串 提交数据的编码方式 如果值为None 表示使用DEFAULT_CHARSET 设置 默认'utf-8'

# 这个属性是可写的 可修改它来修改访问表单数据使用的编码
# 修改后对属性的任何访问(比如从GET或POST中读取数据)将使用新的 encoding值
# 一般在知道变表单数据的编码不是DEFAULT_CHARSET 才修改它

# request.META
# 一个标准字典 包含所有HTTP首部
# CONTENT_LENGTH 请求正文的长度 是一个字符串
# CONTENT_TYPE 请求正文的MIME类型
# HTTP_ACCEPT 响应可接收的Content-Type
# HTTP_ACCEPT_ENCODING 响应可接收的编码
# HTTP_ACCEPT_LANGUAGE 响应可接收的语言
# HTTP_HOST 客户端发送的HTTP Host头部
# HTTP_REFERER referer页面
# HTTP_USER_AGENT 客户端UA信息
# QUERY_STRING 比如请求地址http://127.0.0.1:8000/app01/?id=2&sid=4 那个此值为id=2&sid=4
# REMOTE_ADDR 客户端的IP地址
# REMOTE_HOST 客户端的主机名
# SERVER_PORT 服务器端口 是一个字符串

# request.FILES
# 取类似于字典的对象MultiValueDict ,包含所有上传文件的信息
# 可通过request.FILES.get('f1') 获取上传文件的文件名

# request.COOKIES
# 一个标准字典 包含所有cookie 是键值对 且都是字符串

# request.session
# 一个可读可写的类似于字典的对象 表示当前会话 而且启用会话支持才可用

# request.user 用户认证组件下才可用

# request.is_ajax()
# 是否ajax请求


def index(request):
    # if request.method == 'GET':
    #     # now = datetime.datetime.now()
    #     # html = '现在时间是: '+str(now)
    #     # html = "<html><body>It is now %s.</body></html>" % now
    #
    #     # print(request.GET.get('id'))
    #
    #     # return HttpResponse(html)
    #     msg =''
    # else:
    #
    #     # print(request.POST)
    #     print(request.POST.getlist('shuiguo'))
    #     print(request.POST.getlist('slist'))
    #
    #
    #     user = request.POST.get('user')
    #     pwd = request.POST.get('pwd')
    #     if user == 'ropon' and pwd == '123':
    #         msg = 'success'
    #     else:
    #         msg = 'fail'
    msg = 'ok'
    # print(request.META.get('SERVER_PORT'))
    # print(request.FILES.get('f1'))
    # print(request.user)
    print(request.is_ajax())

    return render(request, 'app01/index.html', {'msg': msg})


# HttpResponse() 传入一个字符串作为响应体
# render(request, template_name[, context])
# 结合一个给定的模板和一个给定的上下文字典 返回一个渲染后HttpResponse 对象
# request 用于生成显影的请求对象
# template_name 要使用的模板完整名称
# context 添加到模板上下文的一个字典 默认是一个空字典
# 总结 render方法就是将一个模板页面中模板语法进行渲染 最终渲染成一个html页面作为响应体

# redirect()
# 传递要重定向的一个硬编码URL

 

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!