Django学习路35_视图使用方法(复制的代码) + 简单总结
from django.shortcuts import render,redirect
from django.http import HttpResponse,JsonResponse
from datetime import datetime,timedelta
# Create your views here. # request就是HttpRequest类型的对象
# request包含浏览器请求的信息
def index(request):
'''首页'''
# num = 'a' + 1
# print(request.path)
response = render(request, 'booktest/index.html')
response.write('hello')
return response def show_arg(request, num):
return HttpResponse(num) def login(request):
'''显示登录页面'''
# 判断用户是否登录
if request.session.has_key('islogin'):
# 用户已登录, 跳转到首页
return redirect('/index')
else:
# 用户未登录
# 获取cookie username
if 'username' in request.COOKIES:
# 获取记住的用户名
username = request.COOKIES['username']
else:
username = '' return render(request, 'booktest/login.html', {'username':username}) def login_check(request):
'''登录校验视图'''
# request.POST 保存的是post方式提交的参数 QueryDict
# request.GET 保存是get方式提交的参数
print(request.method)
# 1.获取提交的用户名和密码
username = request.POST.get('username')
password = request.POST.get('password')
remember = request.POST.get('remember')
# 2.进行登录的校验
# 实际开发:根据用户名和密码查找数据库
# 模拟: smart 123
if username == 'smart' and password == '':
# 用户名密码正确,跳转到首页
response = redirect('/index') # 判断是否需要记住用户名
if remember == 'on':
# 设置cookie username,过期时间1周
response.set_cookie('username', username, max_age=7*24*3600) # 记住用户登录状态
# 只有session中有islogin,就认为用户已登录
request.session['islogin'] = True # 返回应答
return response
else:
# 用户名或密码错误,跳转到登录页面
return redirect('/login') # /test_ajax
def ajax_test(request):
'''显示ajax页面'''
return render(request, 'booktest/test_ajax.html') def ajax_handle(request):
'''ajax请求处理'''
# 返回的json数据 {'res':1}
return JsonResponse({'res':1}) # /login_ajax
def login_ajax(request):
'''显示ajax登录页面'''
return render(request, 'booktest/login_ajax.html') # /login_ajax_check
def login_ajax_check(request):
'''ajax登录校验'''
# 1.获取用户名和密码
username = request.POST.get('username')
password = request.POST.get('password') # 2.进行校验,返回json数据
if username == 'smart' and password == '':
# 用户名密码正确
return JsonResponse({'res':1})
# return redirect('/index') ajax请求在后台,不要返回页面或者重定向
else:
# 用户名或密码错误
return JsonResponse({'res':0}) # /set_cookie
def set_cookie(request):
'''设置cookie信息'''
response = HttpResponse('设置cookie')
# 设置一个cookie信息,名字为num, 值为1
response.set_cookie('num', 1, max_age=14*24*3600)
# response.set_cookie('num2', 2)
# response.set_cookie('num', 1, expires=datetime.now()+timedelta(days=14))
# 返回response
return response # /get_cookie
def get_cookie(request):
'''获取cookie的信息'''
# 取出cookie num的值
num = request.COOKIES['num']
return HttpResponse(num) # /set_session
def set_session(request):
'''设置session'''
request.session['username'] = 'smart'
request.session['age'] = 18
# request.session.set_expiry(5)
return HttpResponse('设置session') # /get_session
def get_session(request):
'''获取session'''
username = request.session['username']
age = request.session['age']
return HttpResponse(username+':'+str(age)) # /clear_session
def clear_session(request):
'''清除session信息'''
# request.session.clear()
request.session.flush()
return HttpResponse('清除成功')
urls.py 内容 from django.conf.urls import url
from booktest import views urlpatterns = [
url(r'^index$', views.index), # 首页
# url(r'^showarg(\d+)$', views.show_arg), # 捕获url参数:位置参数
url(r'^showarg(?P<num>\d+)$', views.show_arg),# 捕获url参数:关键字参数 url(r'^login$', views.login), # 显示登录页面
url(r'^login_check$', views.login_check), # 用户登录校验 url(r'^test_ajax$', views.ajax_test), # 显示ajax页面
url(r'^ajax_handle$', views.ajax_handle), # ajax处理 url(r'^login_ajax$', views.login_ajax), # 显示ajax登录页面
url(r'^login_ajax_check$', views.login_ajax_check), # ajax登录校验 url(r'^set_cookie$', views.set_cookie), # 设置cookie
url(r'^get_cookie$', views.get_cookie), # 获取cookie url(r'^set_session$', views.set_session), # 设置session
url(r'^get_session$', views.get_session), # 获取session
url(r'^clear_session$', views.clear_session), # 清除session
]
展示参数 def show_arg(request, num):
return HttpResponse(num) 判断用户是否登录 request.session.has_key('islogin') 重定向 return redirect('/index') 获取cookie request.COOKIES 获取用户提交的用户名和密码 username = request.POST.get('username')
password = request.POST.get('password') 判断是否需要记住 remember = request.POST.get('remember')
if remember == 'on':
# 设置cookie username,过期时间1周
response.set_cookie('username', username, max_age=7*24*3600) 只要 session中有islogin,就认为用户已登录 request.session['islogin'] = True 返回 JSON 数据 def ajax_handle(request):
'''ajax请求处理'''
# 返回的json数据 {'res':1}
return JsonResponse({'res':1}) 判断是否登录 def login_ajax_check(request):
'''ajax登录校验'''
# 1.获取用户名和密码
username = request.POST.get('username')
password = request.POST.get('password') # 2.进行校验,返回json数据
if username == 'smart' and password == '':
# 用户名密码正确
return JsonResponse({'res':1})
# return redirect('/index') ajax请求在后台,不要返回页面或者重定向
else:
# 用户名或密码错误
return JsonResponse({'res':0}) 设置 cookie 信息 response.set_cookie('num', 1, max_age=14*24*3600) 获取 cookie 信息 num = request.COOKIES['num'] 设置 session 信息
request.session['username'] = 'smart' def set_session(request):
'''设置session'''
request.session['username'] = 'smart'
request.session['age'] = 18
# request.session.set_expiry(5)
return HttpResponse('设置session') 获取 session age = request.session['age'] 清除 session 信息 request.session.flush() def clear_session(request):
'''清除session信息'''
# request.session.clear()
request.session.flush()
return HttpResponse('清除成功')
2020-05-20
Django学习路35_视图使用方法(复制的代码) + 简单总结的更多相关文章
- Django学习笔记(一):环境安装与简单实例
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...
- Django学习笔记之视图高级-HTTP请求与响应
Django限制请求method 常用的请求method GET请求 GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改.比如向服务器获取某篇文章的详情. POST ...
- Django学习路21_views函数中定义字典及html中使用类实例对象的属性及方法
创建 app6 在项目的 settings 中进行注册 INSTALLED_APPS 里面添加 'app6.apps.App6Config' 在 app6 的models.py 中创建数据表 clas ...
- Django学习路12_objects 方法(all,filter,exclude,order by,values)
Person.objects.all() 获取全部数据 def get_persons(request): persons = Person.objects.all() # 获取全部数据 contex ...
- Django学习笔记之视图高级-CSV文件生成
生成CSV文件 有时候我们做的网站,需要将一些数据,生成有一个CSV文件给浏览器,并且是作为附件的形式下载下来.以下将讲解如何生成CSV文件. 生成小的CSV文件 这里将用一个生成小的CSV文件为例. ...
- Django学习笔记之视图高级-类视图
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...
- Django学习---路由url,视图,模板,orm操作
Django请求周期 url -> 路由系统 ->函数或者类 -> 返回字符串 或者 模板语言 Form表单提交: 点击提交 -> 进入url系统 -> 执行函数 ...
- Django学习之 - 基础视图函数
视图:Views 获取用户请求的方法: 1: request.GET 2: request.POST 3: request.FILES # checkbox 等多选文件 4:request.POST. ...
- Django学习 之后端视图与ajax
一.Ajax简介 在此之前你一定需要先学习下JavaScript JSON 可见: 前端学习 之 JavaScript 之 JSON 1.简单介绍 我们以前知道的前端向后端发送数据的方式有: GET: ...
随机推荐
- PHPstorm快捷键的学习
1.Ctrl + 空格 当输入代码时,PHPstorm 会自动出现联想选项. 但是,如果在输入时联想时错过了选择,我们要想让他再一次出现联想,通常采用的方法是在先前的输入后面再输入字符,这时联想又会出 ...
- windows php5.5安装redis扩展,并用redis存储session
1.确定安装版本 先通过phpinfo()查看php的Compiler.Architecture.Thread Safety,其中Thread Safety如果是enabled,那么就是线程安全(ts ...
- innobackupex 数据库备份
一,安装innobackupex CentOS: yum install percona-xtrabackup 二,备份数据 备份: innobackupex --user=user --passwo ...
- GitHub 热点速览 Vol.27:程序员的自我救赎——GitHub 摸鱼
作者:HelloGitHub-小鱼干 摘要:都知道 VSCode 有各种摸鱼小插件,边听云音乐.边在 IDE 斗地主,再来一个 NBA 直播,怎一个美滋滋了得.作为 VSCode 的同门,GitHub ...
- 关于npm和yarn 安装vue脚手架
第一篇博客有点小紧张.轻喷~ 第一步:安装node.js 地址 --------https://nodejs.org/en/ 详细步骤这里就不写了 可以去看 地址 ----- ...
- 显示IP地址的命令
显示IP地址的命令 Centos7默认显示IP地址的命令 #获取所有网卡的IP地址 [root@clf ~]# ip a1: lo: <LOOPBACK,UP,LOWER_UP ...
- day05总结
""" echo "了不起的 [陈少] " 输出结果: 了不起的陈少! ! ! """ ""& ...
- 《Object Storage on CRAQ: High-throughput chain replication for read-mostly workloads》论文总结
CRAQ 论文总结 说明:本文为论文 <Object Storage on CRAQ: High-throughput chain replication for read-mostly wor ...
- Mysql基础(一):Mysql初识、基本指令、数据库密码相关、创建用户及授权
来源:https://www.cnblogs.com/liubing8/p/11432534.html 目录 数据库01 /Mysql初识.基本指令.数据库密码相关.创建用户及授权 1. 数据库概述 ...
- shaderlab - 9chapter-阴影
原理 相机和光源重合,相机能看到的表面,形成的深度图--叫做,阴影纹理(shadowMap). 传统的,用base和add更新深度信息,但是,此处需求是深度信息而已,掺杂了光的计算了,所以,unity ...