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

相关文章

如何用Docker运行Django项目

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

利用Django框架快速构建Web应用:从零到上线

随着互联网的发展,Web应用的需求日益增长,而Django作为一个高级的Python Web框架,以其强大的功能和灵活的架构,成为了众多开发者的选择。本文将指导你如何从零开始使用Django框架构建一个简单的Web应用,并将其部署到线上,让世界看到你的作品。 Django简介 Django是由Adrian Holovaty和Simon Willison于2005年开发的一个开源框架,旨在简

Linux搭建Python3、Django环境

开发十年,就只剩下这套架构体系了! >>>    好久没写了,朋友们,我又回来了。 安装Python3 Python全部版本下载地址:         https://www.python.org/ftp/ 解决RedHat,使用Python3退格出现乱码问题:         yum -y install readline-devel.x86_64 下载Python3:

Django 第十七课 -- 视图 - FBV 与 CBV

目录 一. 前言 二. FBV 三. CBV 一. 前言 FBV(function base views) 基于函数的视图,就是在视图里使用函数处理请求。 CBV(class base views) 基于类的视图,就是在视图里使用类处理请求。 二. FBV 基于函数的视图其实我们前面章节一直在使用,就是使用了函数来处理用户的请求,查看以下实例: 路由配置: urlpat

django摄影竞赛小程序论文源码调试讲解

2系统关键技术及工具简介 系统开发过程中设计的关键技术是系统的核心,而开发工具则会影响的项目开发的进程和效率。第二部分便描述了系统的设计与实现等相关开发工具。 2.1 Python简介 Python 属于一个高层次的脚本语言,以解释性,编译性,互动性和面向对象相结合。在设计上相比其他语言,它更具有特色语法结构,很强的可读性。 2.2 Django框架 Django是一个开放源

Django 测试指南

#Django 测试指南 对绝大部分人来说,测试Django应用感觉很神秘,他们只是听说代码必须要测试,但是经常找不到线索如何入手。当他们看了Django的测试文档,他们找到深入的哪些功能是可用的,但是如果实现没有任何指导。 这是本博客系列的第一篇,尝试帮助大家减轻压力,使得每个人在测试潮流。假设你从来没有做过任何测试,但是对Python&Django很熟悉了。 我们将贯穿添加测试到pere

使用django-simple-captcha遇到的坑

使用django-simple-captcha遇到的坑 一站点gongshare.com在做注册功能时验证码采用的django-simple-captcha,因为笔者开发环境采用的Windows 64bit系统,结果安装使用的时候接二连三遇到好几个坑。 django-simple-captcha需要依赖django1.3+、PIL1.1.7+或者Pillow2.0+,根据文档安装后开始使用时,

解决Django会话中的竞态条件

Django 会话中的竞态条件(race condition)问题通常发生在多个请求几乎同时修改同一个会话数据时,导致数据丢失或数据不一致。这种情况在需要频繁更新会话数据的场景(如实时聊天应用、并发请求处理等)中尤为常见。 1、问题背景 在 Django 中使用会话时,可能会遇到竞态条件,导致数据丢失或不一致。竞态条件是指两个或多个请求同时访问共享资源时,由于执行顺序的不确定性,导致数据不

Django+Vue3前后端分离学习(五)(前端登录页面搭建)

1、如果需要使用组合式API,需要安装插件: npm install vite-plugin-vue-setup-extend --save-dev 在vite.config.js里配置: 首先导入: import VueSetupExtend from 'vite-plugin-vue-setup-extend' 添加: 2、创建login.vue 然后再index.js里添加

Python——在Linux和Windows下创建Django项目

前言:我和一个室友合作写了一个网站,“网络数据库技术”的课程 project。 从2016年4月8日开始,到2016年4月29日发布第一个版本,在这三个星期的时间里面,前一半时间用来学习Python,Django和Git/GitHub,后一半时间现学现卖,真正在写网站。期间充满了对于未知的探索,在短时间内增加了很多新技能,对整个互联网有了更深的认识。 这个 web project 发布在G