Django는 Python으로 작성된 오픈 소스 웹 애플리케이션 프레임워크입니다. 이 기사에서는 Django 프레임워크가 ajax post 메소드를 사용하는 방법을 소개합니다. 관심 있는 친구여, 와서 함께 배워보세요.
Django는 다음 언어로 작성된 오픈 소스 웹 애플리케이션 프레임워크입니다. 파이썬. MVC 소프트웨어 디자인 패턴, 즉 모델 M, 뷰 V 및 컨트롤러 C가 채택되었습니다. 원래 Lawrence Publishing Group의 일부 뉴스 콘텐츠 기반 웹사이트, 즉 CMS(Content Management System) 소프트웨어를 관리하기 위해 개발되었습니다. 그리고 2005년 7월 BSD 라이선스로 출시되었습니다. 이 프레임은 벨기에 집시 재즈 기타리스트 Django Reinhardt의 이름을 따서 명명되었습니다.
오늘 jQuery의 ajax를 호출하려고 할 때 문제를 발견했습니다. 즉, GET 메서드를 사용하면 서버가 정상적으로 반환되지만 POST 메서드를 사용하면 서버가 정상적으로 반환되지 않습니다. 나중에 양식 기반 POST 메서드 테스트도 작동하지 않았습니다. POST가 HTTP 403 오류를 보고하는 한! 매우 이상합니다. . .
인터넷에서 많은 정보를 검색한 결과 Django의 Cross Site Request Forgery 보호 메커니즘에 문제가 있는 것으로 밝혀졌습니다. 이 메커니즘은 CSRF 공격으로부터 보호하기 위한 것입니다. crsf 공격이란 무엇입니까? Taolin 블로그에는 비교적 간단한 설명이 있습니다. 해결 방법 Django 공식 홈페이지 http://docs.djangoproject.com/en/dev/ref/contrib/csrf/를 제공하고 있으며, 안내에 따라 수정 후 원활하게 ajax를 게시할 수 있습니다.
구체적인 방법은 먼저 폼의 POST를 해결하는 것입니다. settings.py 파일에서 MIDDLEWARE_CLASSES를 찾아 미들웨어를 추가합니다: 'django.middleware.csrf.CsrfViewMiddleware'. 수정된 코드는 다음과 같습니다.
Python code
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.csrf.CsrfResponseMiddleware', #加入这个中间件 )
이 수정 후에는 양식 메소드를 해결할 수 있습니다. POST에서 HTTP 403 문제를 제출했습니다. 이런 방식으로 ajax의 Post 제출을 변경하는 것만으로는 충분하지 않습니다. 또한 각 제출마다 쿠키 처리 프로세스를 연결해야 합니다. 즉, 제출할 때마다 이 프로세스가 트리거되고 csrf 토큰이 제출된 http 헤더에 추가됩니다. 다행스럽게도 jQuery를 사용하여 ajax를 처리하는 경우 Django는 문제를 해결하기 위해 코드 조각을 직접 보냅니다. 별도의 js 파일에 넣어서 html 페이지에 소개합니다. jquery js 파일을 가져온 후에 이 js 파일을 가져와야 합니다. 다음과 같이 코드를 직접 복사했습니다.
Js code
$('html').ajaxSend(function(event, xhr, settings) { function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie != '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) == (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) { // Only send the token to relative URLs i.e. locally. xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken')); } });
이런 고민 끝에 마침내 ajax를 사용하여 Django와 정상적으로 통신할 수 있게 되었습니다.
Usage of ajax in Django
프런트엔드 ajax 코드는 다음과 같습니다.
$.ajax({ type:'GET', url:'/store/ds_mgmt_wx/ajax_handle', dataType:'html', success:function(data) { alert(data); }, error:function(data) { alert(data); } });
백엔드의 해당 코드 반환 방법은 다음과 같습니다.
if act_job == 'ajax_handle': return HttpResponse('ajax_handle')
위는 제가 모두를 위해 컴파일한 것입니다. 앞으로 모든 사람에게 도움이 되기를 바랍니다.
관련 기사:
Django의 Ajax 포스트 복합 객체 획득 방법(그래픽 튜토리얼)
Ajax를 사용하여 Razor 페이지 부분 업데이트(그래픽 튜토리얼)
Ajax에서 응답을 통해 백그라운드에서 데이터 전달 정보 질문(코드, 상세 분석 포함)
위 내용은 Django 프레임워크에서 ajax post 메소드를 사용하는 방법(그래픽 튜토리얼)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Django项目配置修改我们需要把原先的Django项目进行修改才能更好地进行项目迁移工作,首先需要修改的是settings.py文件。由于项目上线之后不能让用户看到后台的运行逻辑,所以我们要把DEBUG改成False,把ALLOWED_HOSTS写成‘*’,这样是为了允许从不同主机进行访问。由于linux中如果不加这句可能会出现文件找不到的情况,所以我们要把模板的路径进行拼接。由于做Django项目肯定进行过数据库的同步,所以我们要把migrations

我django项目叫yunwei,主要app是rabc和web,整个项目放/opt/下如下:[root@test-codeopt]#lsdjango_virtnginxredisredis-6.2.6yunwei[root@test-codeopt]#lsyunwei/manage.pyrbacstatictemplatesuwsgiwebyunwei[root@test-codeopt]#lsyunwei/uwsgi/cut_log.shloguwsgi.iniuwsgi.loguwsgi.p

Django是一个使用Python语言编写的Web开发框架,其提供了许多方便的工具和模块来帮助开发人员快速地搭建网站和应用程序。其中最重要的一个特性就是数据库迁移功能,它可以帮助我们简单地管理数据库模式的变化。在本文中,我们将会介绍一些在Django中使用数据库迁移的技巧,包括如何开始一个新的数据库迁移、如何检测数据库迁移冲突、如何查看历史数据库迁移记录等等

近年来,Web应用程序逐渐流行,而其中许多应用程序都需要文件上传功能。在Django框架中,实现上传文件功能并不困难,但是在实际开发中,我们还需要处理上传的文件,其他操作包括更改文件名、限制文件大小等问题。本文将分享一些Django框架中的文件上传技巧。一、配置文件上传项在Django项目中,要配置文件上传需要在settings.py文件中进

第一步:换源输入命令换掉Ubuntu的下载源sudonano/etc/apt/sources.list将以下全部替换掉原文件,我这里用的是阿里的源,你也可以换其他的。debhttp://mirrors.aliyun.com/ubuntu/bionicmainrestricteddebhttp://mirrors.aliyun.com/ubuntu/bionic-updatesmainrestricteddebhttp://mirrors.aliyun.com/ubuntu/bionicunive

Django是一个Web框架,可以轻松地构建RESTfulAPI。RESTfulAPI是一种基于Web的架构,可以通过HTTP协议访问。在这篇文章中,我们将介绍如何使用Django来构建RESTfulAPI,包括如何使用DjangoREST框架来简化开发过程。安装Django首先,我们需要在本地安装Django。可以使用pip来安装Django,具体

Django是一款流行的Pythonweb框架,其出色的ORM(对象关系映射)机制让开发者能够轻松操作数据库。但是在一些实际项目中,需要连接多个数据库,这时候就需要一些技巧来保证项目的稳定性和开发效率。在Django中,多数据库的支持是基于Django框架自身提供的功能而实现的。在这里,我们将介绍一些多数据库支持的技巧,以帮助你在Django的开发中更好地

随着互联网的普及,博客在信息传播和交流方面扮演着越来越重要的角色。在此背景下,越来越多的人开始构建自己的博客网站。本文将介绍如何使用PythonDjango框架来构建自己的博客网站。一、PythonDjango框架简介PythonDjango是一个免费的开源Web框架,可用于快速开发Web应用程序。该框架为开发人员提供了强大的工具,可帮助他们构建功能丰


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

뜨거운 주제



