Django杂七杂八

2024-04-17 19:18
文章标签 django 杂七杂八

本文主要是介绍Django杂七杂八,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 表单提交
  • 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_exempt
def saveNews(request):new = request.POSTreturn 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, redirectfor i in ['iphone', 'ipad', 'android']:if i in request.META.get('HTTP_USER_AGENT', '').lower():breakelse: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!")

这篇关于Django杂七杂八的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912612

相关文章

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

Django中的函数视图和类视图以及路由的定义方式

《Django中的函数视图和类视图以及路由的定义方式》Django视图分函数视图和类视图,前者用函数处理请求,后者继承View类定义方法,路由使用path()、re_path()或url(),通过in... 目录函数视图类视图路由总路由函数视图的路由类视图定义路由总结Django允许接收的请求方法http

Django HTTPResponse响应体中返回openpyxl生成的文件过程

《DjangoHTTPResponse响应体中返回openpyxl生成的文件过程》Django返回文件流时需通过Content-Disposition头指定编码后的文件名,使用openpyxl的sa... 目录Django返回文件流时使用指定文件名Django HTTPResponse响应体中返回openp

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁

对Django中时区的解读

《对Django中时区的解读》:本文主要介绍对Django中时区的解读方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景前端数据库中存储接口返回AI的解释问题:这样设置的作用答案获取当前时间(自动带时区)转换为北京时间显示总结背景设置时区为北京时间 TIM

Django之定时任务django-crontab的实现

《Django之定时任务django-crontab的实现》Django可以使用第三方库如django-crontab来实现定时任务的调度,本文主要介绍了Django之定时任务django-cront... 目录crontab安装django-crontab注册应用定时时间格式定时时间示例设置定时任务@符号

Django序列化中SerializerMethodField的使用详解

《Django序列化中SerializerMethodField的使用详解》:本文主要介绍Django序列化中SerializerMethodField的使用,具有很好的参考价值,希望对大家有所帮... 目录SerializerMethodField的基本概念使用SerializerMethodField的

如何使用celery进行异步处理和定时任务(django)

《如何使用celery进行异步处理和定时任务(django)》文章介绍了Celery的基本概念、安装方法、如何使用Celery进行异步任务处理以及如何设置定时任务,通过Celery,可以在Web应用中... 目录一、celery的作用二、安装celery三、使用celery 异步执行任务四、使用celery

Django中使用SMTP实现邮件发送功能

《Django中使用SMTP实现邮件发送功能》在Django中使用SMTP发送邮件是一个常见的需求,通常用于发送用户注册确认邮件、密码重置邮件等,下面我们来看看如何在Django中配置S... 目录1. 配置 Django 项目以使用 SMTP2. 创建 Django 应用3. 添加应用到项目设置4. 创建

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p