요약 템플릿에서 요청을 GET :
내가했던 방법은 서투른 것 같다. 요약하면 기본적으로 jquery 결과를보기로 전달하려고합니다. 그런 다음이 뷰는 jquery 변수에 저장된 값으로 perl 스크립트를 실행하는 하위 프로세스를 실행합니다. 이 perl 스크립트는 html 페이지를 생성합니다 (실제로 표시된 내용을 업데이트합니다). Django는 0.3 초 정도 기다린 후 perl 스크립트가 끝날 때까지 (그리고 새로운 html 파일이 존재할 때까지) 페이지를 새로 고침해야합니다. 다음은이 작업을 수행하려는 시도입니다. 그래도 제대로 작동하지 않습니다. 내가 할 수있는 것에 대한 어떤 제안이라도 대단히 감사하겠습니다!보기에 문제의
현재 데이터베이스를 쿼리하고 일부 드롭 다운 테이블을 채우며 펄 스크립트를 실행하는보기가 있습니다. perl 스크립트는 드롭 다운 메뉴에서 선택한 값을 기반으로 html 파일을 생성합니다. 그러면 페이지가 업데이트됩니다. 이 모든 것을 위해 PyCharm을 IDE로 사용하고 있습니다.
Internet Explorer 11에서이 페이지는 대략 1/5로 업데이트됩니다. PyCharm의 디버그 콘솔에서 다음과 같이 표시됩니다 : 작동하지 않을 때마다 각 요청마다
[30/Apr/2014 10:26:11] "GET /Pass_Rate_by_Platform/?resultValue=cd&modelValue=Ahmed_25 HTTP/1.1" 200 19886
[30/Apr/2014 10:26:11] "GET /Pass_Rate_by_Platform/ HTTP/1.1" 200 19886
이 표시됩니다. 가끔이 페이지를 새로 고침 그래서 분명히
[30/Apr/2014 11:01:52] "GET /Pass_Rate_by_Platform/ HTTP/1.1" 200 19902
[30/Apr/2014 11:01:52] "GET /Pass_Rate_by_Platform/?resultValue=liftforce&modelValue=Ahmed_20 HTTP/1.1" 200 19902
을 때 안 : 그것은 않는 경우
는 PyCharm이 표시됩니다. IE의 문제는 분명합니다.
파이어 폭스에서는 방화범이 끌리는 모든 요청은 똑같은 Get 데이터를 보내는 것이라고합니다. 그러나 이것은 PyCharm 디버그 섹션에 표시되지 않습니다. 여기
는 관련 코드 :views.py
def platform_pass_rate(request):
db = MySQLdb.connect(user='a_user', db='secondary', passwd='something', host='ab-cd')
cursor = db.cursor()
cursor.execute('SELECT study FROM study ORDER BY study ASC')
study_model = [row for row in cursor.fetchall()]
cursor.execute(
'SELECT column_name FROM information_schema.columns where table_name =
\'finalvalues\' order by ordinal_position')
study_result = cursor.fetchall()
db.close()
study_models = [i for sub in study_model for i in sub]
study_results = [i for sub in study_result for i in sub]
if request.method == 'GET':
resultVar = request.GET.get('resultValue', 'cd')
modelVar = request.GET.get('modelValue', 'Ahmed_00')
subprocess.call(["perl", "static/static/perl/passRateByPlatform.pl", resultVar, modelVar])
# return HttpResponse(resultVar)
else:
subprocess.call(["perl", "static/static/perl/passRateByPlatform.pl", "liftforce", "Ahmed_25"])
current_url = get_full_path(request)
return render_to_response("data_form_platform.html", {'our_url': current_url,
'study_models': study_models,
'study_results': study_results})
base.html
<script type="text/javascript">
$(document).ready(function() {
{# $.ajaxSetup({ cache: false });#}
var current_url = $('#current_url').text();
var id = current_url.trim();
$('#' + id).addClass('active');
$('#platform_data_form_button').click(function() {
var selectedResultValue = $('#platform_type_of_result :selected').text();
console.log(selectedResultValue);
var selectedModelValue = $('#platform_models :selected').text();
console.log(selectedModelValue);
$('#platform_type_of_result').change(function() {
var selectedResultValue = $('#platform_type_of_result :selected').text();
console.log(selectedResultValue);
});
$('#platform_models').change(function() {
var selectedModelValue = $('#platform_models :selected').text();
console.log(selectedModelValue);
});
$.get("/Pass_Rate_by_Platform/", { resultValue: selectedResultValue, modelValue: selectedModelValue}, function (response) {
console.log("workinggggggg");
});
});
});
</script>
해당 버튼 :
,<div class="col-md-1" style="margin-left: -20px" id="platform_data_form_button">
<a href="/Pass_Rate_by_Platform/" class="btn btn-primary btn-success"></span> Confirm</a>
</div>