Django杂七杂八
来源:互联网 发布:九天网络 编辑:程序博客网 时间:2024/06/05 20:38
- 表单提交
- model
- 时间model
- Django的模板
- 直接渲染HTML代码
- Django中将数据传递到页面中的js内
- Django中的CSRF验证问题
- Django中使用Jinji2将变量传递到js中
- Django模板中不转义html代码
- Django判断跳转到首页
- Django权限控制
- Django中的文件上传
- 这篇博客是记录一些使用Django开发要注意的小问题。
表单提交
加上
{% csrf_token %}
model
时间model
分为三类:DateTimeField、DateField和TimeField三种类型可以用来创建日期字段,其值分别对应着datetime()、date()、time()三中对象。这三个field有着相同的参数auto_now和auto_now_add。
auto_now无论是你添加还是修改对象,时间为你添加或者修改的时间。
auto_now_add为添加时的时间,更新对象时不会有变动。
datetime是日期加上时间,date只是日期,time只有时间。
Django的模板
直接渲染HTML代码
通常,我们在使用Django渲染HTML代码的时候会出现代码被转义的情况,不能出现我们理想的状态,去除转义的方法如下:
{% block main %} {{ content }}{% endblock main %}换成{% block main %} {% autoescape off %} {{ content }} {% endautoescape %}{% endblock main %}
Django中将数据传递到页面中的js内
仅需要注意两点
- 记得将Python数据转成Json
return render(request, 'homepage/index_cn.html', {"patents": json.dumps(patents)})
- 记得在页面获取Json数据的时候加上safe
var patents = {{ patents|safe }}
Django中的CSRF验证问题
直接在表单下设置
Django模板
<form method="POST" action="/post-url/"> {% csrf_token %} || 在jinjia2中使用{{ csrf_token }} <input name='zqxt' value="自强学堂学习Django技术"></form>
jinjia2
<form method="POST" action="/post-url/"> <input value="{{ csrf_token }}" style="display:none"></input> <input name='zqxt' value="自强学堂学习Django技术"></form>
ajax请求
$.ajaxSetup({ data: {csrfmiddlewaretoken: '{{ csrf_token }}' },});
修改后端逻辑
from django.views.decorators.csrf import csrf_exempt@csrf_exemptdef saveNews(request): new = request.POST return HttpResponse(request)
Django中使用Jinji2将变量传递到js中
注意用”“将变量套起来
<script> let errcode = "{{ errcode }}" if(errcode == "1"){ alert("此号码已经录入,请勿重复录入!") }</script>
Django模板中不转义html代码
{% autoescape off %} {{ detail }}{% endautoescape %}
Django判断跳转到首页
from django.shortcuts import render, redirect for i in ['iphone', 'ipad', 'android']: if i in request.META.get('HTTP_USER_AGENT', '').lower(): break else: return redirect('/homepage')
Django权限控制
from django.contrib.auth import authenticate, login# 先进行登录,方便后面的权限控制# user = authenticate(username=request.wx_openid, password="qwer1234")# if user is not None:# if user.is_active:# login(request, user)# print(">" * 100)
Django中的文件上传
主要注意文件保存路径是从项目根目录开始检索的,如path = “./laboratory/static/images/news”。
path = "./laboratory/static/images/news" myFile = request.FILES.get("myfile", None) # 获取上传的文件,如果没有文件,则默认为None if not myFile: return HttpResponse("no files for upload!") destination = open(os.path.join(path, myFile.name), 'wb+') # 打开特定的文件进行二进制的写操作 for chunk in myFile.chunks(): # 分块写入文件 destination.write(chunk) destination.close() return HttpResponse("upload over!")
0 0
- Django杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- 杂七杂八
- JS学习之表格的排序简单实例
- 操作系统ucore lab3实验报告
- 剑指offer-面试题47-不用加减乘除做加法
- 如何将 Java Web 项目上传到linux
- 安装Anaconda科学计算包
- Django杂七杂八
- 代码小问题
- OSG编译错误总结
- iftop 流量监控
- HDU1425-sort
- MIT最新算法,双向传播比BP快25倍深度学习
- POJ2388-Who's in the Middle
- Centos7 最小化安装需要静态配置IP,yum镜像和设置
- leapmotion开发(3)实例操作