나는 Django를 처음 접했고 그것을 이해하려고 노력하고 있습니다. 현재 저는 네트워크 토폴로지 비주얼 라이저 (라우터와 스위치가 함께 연결된 경우)를 만들고 있습니다. 그것은 잘 작동하고 모든 데이터는 자바 스크립트 객체에 저장됩니다.
사용자가 버튼을 클릭 할 때이 자바 스크립트 개체를 django에 보내어 적절하게 구문 분석하고 처리 할 수 있도록하고 싶습니다. 나는 많은 연구를했고 JSON 문자열을 POST하기 위해 JQuery와 ajax의 조합을 사용하는 유사한 구현을 발견했습니다. 이것은 현재 내 코드 중 일부입니다.
mainapp / urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^NetworkTopology/', include('OpenAutomation.NetworkTopology.urls')),
url(r'^NetworkTopology/json/', include('OpenAutomation.NetworkTopology.urls')),
url(r'^admin/', admin.site.urls),
]
NetworkTopology / urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^json/$', views.returnjson, name='returnjson'),
]
NetworkTopology / views.py
from django.http import HttpResponse
from django.shortcuts import render_to_response
def index(request):
return render_to_response('index.html')
def returnjson(request):
if request.is_ajax():
request_data = request.POST
print("Raw Data: " + request_data.body)
return HttpResponse("OK")
JavaScript 기능 (JSON 반환 버튼 누름) :
function returnJsonTop(){
$(document).ready(function() {
$.ajax({
method: 'POST',
url: '/NetworkTopology/json',
dataType: 'json',
data: JSON.stringify(nodes.get(),null,4),
success: function (data) {
//this gets called when server returns an OK response
alert("it worked!");
},
error: function (data) {
alert("it didnt work");
}
});
});
}
내 인덱스 템플릿에서 눌렀을 때 returnJsonTop () 함수를 호출하는 버튼을 만들었습니다.
<button id="submitJson" onclick="returnJsonTop();">Deploy</button>
현재 배포 버튼을 누르면 오류를 처리하도록 설정된 '작동하지 않음'경고 만 표시됩니다. 여기에서 올바른 방향으로 나를 가리키는 누군가에게 정말 감사하겠습니다. 문제가 내 urls.py 파일에 있다고 생각하지만 행운없이 다양한 URL 조합을 시도했습니다.
나중에 이것을 읽는 사람들을 위해 이것이 내가 한 일입니다.
mainapp / urls.py
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^NetworkTopology/', include('OpenAutomation.NetworkTopology.urls')),
url(r'^admin/', admin.site.urls),
]
NetworkTopology / urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^json/$', views.returnjson, name='returnjson'),
]
NetworkTopology / views.py
from django.http import HttpResponse
from django.shortcuts import render_to_response
from django.views.decorators.csrf import csrf_exempt
def index(request):
return render_to_response('index.html')
@csrf_exempt
def returnjson(request):
if request.is_ajax():
request_data = request.POST
print("Raw Data: " + str(request_data))
return HttpResponse("OK")
403 오류가 발생하여 '@csrf_exempt'를 추가했습니다. 나중에 제대로 처리하기 위해 이것을 변경할 것입니다.
JSON 함수 반환 :
function returnJsonTop(){
$.ajax({
method: 'POST',
url: '/NetworkTopology/json/',
dataType: 'json',
data: JSON.stringify(nodes.get(),null,4)
});
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다