Django笔记

    www.sunck.wang/abc?a=1&a=2&c=3
    urls.py
    url(r'^get2', views.get2),
    views.py
    def get2(request):
        a = request.GET.getlist('a')
        a1 = a[0]
        a2 = a[1]
        c = request.GET.get('c')
        return HttpResponse(a1 + " " + a2 + " " + c)
POST属性
    使用表单模拟POST请求
    关闭CSRF:project\project\settings.py
        MIDDLEWARE = [
            'django.middleware.security.SecurityMiddleware',
            'django.contrib.sessions.middleware.SessionMiddleware',
            'django.middleware.common.CommonMiddleware',
            # 'django.middleware.csrf.CsrfViewMiddleware',
            'django.contrib.auth.middleware.AuthenticationMiddleware',
            'django.contrib.messages.middleware.MessageMiddleware',
            'django.middleware.clickjacking.XFrameOptionsMiddleware',
        ]
    示例:
        def showregist(request):
            return render(request, 'myApp/regist.html',)

        def regist(request):
            name = request.POST.get("name")
            gender = request.POST.get("gender")
            age = request.POST.get("age")
            hobby = request.POST.getlist("hobby")
            print(name)
            print(gender)
            print(age)
            print(hobby)
            return HttpResponse("regist")
    路径:
        url(r'^showregist/$', views.showregist),
            url(r'^showregist/regist/$', views.regist),
    页面:
           <!doctype html>
        <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport"
                  content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
            <meta http-equiv="X-UA-Compatible" content="ie=edge">
            <title>注册</title>
        </head>
        <body>
            <form action="regist/" method="post">
                姓名:<input type="text" name="name" value=""/>
                <hr>
                性别:<input type="radio" name="gender" value="1">男<input type="radio" name="gender" value="0">女
                <hr>
                爱好:<input type="checkbox" name="hobby" value="power"/>权利<input type="checkbox" name="hobby" value="money">金钱<input type="checkbox" name="hobby" value="beauty">美女<input type="checkbox" name="hobby" value="Tesla">Tesla
                <hr>
                <input type="submit" value="注册">
            </form>
        </body>
        </html>

HttpResponse对象
概述:
作用:给浏览器返回数据
HttpRequest对象是由Django创建的,HttpResponse对象是由程序员创建
用法:
不用模板,直接返回数据
语句示例:return HttpResponse(“Sunck is a good man”)
调用模板
使用render方法
原型:render(request, templateName[, context])
作用:结合数据和模板,返回一个完整的HTML页面
参数:
request:请求体对象
templateName:模板路径
context:传递给需要渲染在模板上的数据
属性
content:表示返回内容
charset:编码格式
status_code:响应状态码
200
304
404
400
content-type:指定输出的MIME类型
方法
init:使用页面内容实例化HttpResponse对象
write(content):以文件的形式写入
flush():以文件的形式输出缓冲区
set_cookie(key, value, maxAge=None, exprise=None)
delete_cookie(key):
删除cookie
如果删除一个不存在的cookie,就当什么都没发生
子类HttpResponseRedirect
功能:重定向,服务器端的跳转
简写
redirect(to)
to推荐使用反向解析
示例:
from django.http import HttpResponseRedirect
from django.shortcuts import redirect
def redirect1(request):
# return HttpResponseRedirect(’/redirect2’)
return redirect(’/redirect2’)
def redirect2(request):
return HttpResponse(“我是重定向后的视图”)
子类JsonResponse
返回Json数据,一般用于异步请求
init(self.data)
data 字典
注意:Content-type类型为application/json
状态保持
http协议是无状态的,每次请求都是一次新的请求,它不记得之前的请求。
客户端与服务器的一次通信就是一次会话
实现状态的保持,在客户端或服务端存储有关会话的数据
存储的方式
cookie:所有数据存储在客户端,不要存储敏感的数据
session:所有的数据存储在服务端,在客户端用cookie存储session_id
状态保持的目的:
在一段时间内跟踪请求者的状态,可以实现跨页面访问当前的请求者的数据
注意:不同的请求者之间不会共享这个数据,与请求者一一对应
启用session:project\project\settings.py
INSTALLED_APPS ‘django.contrib.sessions’,
MIDDLEWARE ‘django.contrib.sessions.middleware.SessionMiddleware’,
使用session
启用session后,每个httpRequest对象都有一个session属性
get[key, default=None] 根据键获取session值
clear() 清空所有会话
flush() 删除当前会话并删除会话的cookie
示例:
# session
def main(request):
# 取session ,m
username = request.session.get(‘name’, ‘游客’)
print(username)
return render(request, ‘myApp/main.html’, {‘username’: username})

        def login(request):
            return render(request, 'myApp/login.html')

        def showmain(request):
            print("*****************")
            username = request.POST.get('username')
            # 存储session
            request.session['name'] = username
            return redirect('/main/')

        from django.contrib.auth import logout
        def quit(request):
            # 清除session
            logout(request) # 方法1,推荐
            # request.session.clear() # 方法2
            request.session.flush() # 方法3
            return redirect('/main/')
设置session过期时间
    set_expiry(value)
    request.session.set_expiry(10)  设置为10秒后过期
    如果不设置,2个星期后过期
    value设置为0代表关闭浏览器时过期
    value设置为None代表设置永不过期,不推荐
weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值