как вызвать функцию python из скрипта Jquery в шаблоне django

#jquery #python #django #django-templates #django-1.3

#jquery #python #django #django-шаблоны #django-1.3

Вопрос:

я новичок в django и jquery, я searching for a 'hello world' sample for jquery использую django1.3, где hello world возвращается в виде строки / json с сервера клиенту, когда пользователь нажимает кнопку или при загрузке страницы.

Примечание: я использую django1.3 и python 2.7. Извините, это очень простой вопрос.

Я добился успеха в `показывает строку «This is Hello World by jQuery» без каких-либо функций просмотра (используя только jquery).Но я не знаю, как использовать функции просмотра из функций jquery, если у кого-нибудь есть идея, пожалуйста, помогите мне.Спасибо в advance.om шаблоны Я попробовал использовать следующие фрагменты кода.

urls.py

 (r'^hellofromserver/$',views.test),



def test(request):
    if request.method == 'GET':
        json = simplejson.dumps('hello world!')
        return HttpResponse(json, mimetype = 'application/json')
  

jqueyhelloserver.html:

 <html>
<head>
<title>jQuery Hello World</title> 
<script type="text/javascript" src="{{STATIC_URL}}js/jquery-1.2.6.min.js"></script> 
</head> 
<body>
 .....

<script type="text/javascript">


 # how can I get'hello world' from test function(What is the sytax  )

    </script>     
<div id="msgid">
</div> 
</body>
</html>
  

Как я могу вызвать функции ‘test’ и ‘hellofromserver’ из jquery?(из шаблонов).

Комментарии:

1. Мне просто нужно знать, как jquery связывается с сервером?

Ответ №1:

Наконец-то я получил «привет» от сервера!

 urls.py:
from django.views.generic.simple import direct_to_template

(r'^hello/$',direct_to_template, {'template': 'jqueryserver.html'}),
(r'^jqueryserver/$',views.jqueryserver),
  

views.py:

 #other imports
from django.views.decorators.csrf import csrf_exempt
from django.core.context_processors import csrf
from django.views.decorators.csrf import csrf_protect

def jqueryserver(request):
    print "in jqueryserver"
    response_string="hello"
    if request.method == 'GET':
        if request.is_ajax()== True:
            return HttpResponse(response_string,mimetype='text/plain')
  

jqueryserver.html

 <html>
<head>
    <title>jQuery Hello World</title> 
    <script type="text/javascript" src="{{STATIC_URL}}js/jquery.js"></script>
<script>


$.ajax({
    type: "GET",
    url: "/jqueryserver/",
   success: function(data){
         alert(data);         
     }
});

</script>   
</head> 
<body>
<form method ="GET" >
<input type= "submit" id = "save" value ="Save" />
</form>
<div id= "test"></div>
</body>
</html>
  

Комментарии:

1. В случае ‘post’ включите код из django projectв свой скрипт docs.djangoproject.com/en/1.3/ref/contrib/csrf/#ajax

Ответ №2:

… И в чем проблема, с которой вы столкнулись? Любая информация из вашей консоли Javascript? Возможно, вы не настроили свое приложение django на использование защиты CSRF.

Комментарии:

1. , Спасибо за ответ. Другие части моего кода в порядке? .Ниже приведен способ вызова python fn из jquery. 1) $.getJSON(» 127.0.0.1:8000/viewname?обратный вызов = 2)$.getJSON (» 127.0.0.1:8000/url?обратный вызов =