社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Django

Ajax路由到django URL(使用django 2.0“path”urlpatterns)

Franchesca Yamiquemeimporta • 6 年前 • 1877 次点击  

这在Django2.0将url模式从“url”更改为“path”之前就已经起作用了:

索引文件

<!DOCTYPE html>
  {% load static %}
  <head>
      <script type="text/javascript" src="{% static 'main/js/jquery-3.3.1.js' %}">
  </head>
  <body>
      <div id='test'>
        <p><button class="btn">Click Here!</button></p>
      </div>
  <script>
      $('.btn').click(function(){
      console.log('button is clicked!')
      $.ajax({
          url: 'main/all_json',
          sucess: function(serverResponse){
          console.log('success.serverResponse', serverResponse)
    }
  })  
});

应用程序级URL.py

urlpatterns = [
  url(r'^all_json$',views.all_json, name="all_json")
  ]

项目级URL.py

app_name= "main"

urlpatterns = [
    path('', include ('apps.main.urls', namespace='main')),
    path('admin/', admin.site.urls),
]

VIEW

def all_json(request):
    return HttpResponse ('hello world!')

但是现在,django 2.0使用“path”而不是url regex模式。当我使用路径时:

app_name= "name"

urlpatterns = [
path('all_json',views.all_json, name="all_json"),
]

我得到:

得到 http://127.0.0.1:8000/main/all_json 404(未找到)

我看了看 new documentation release notes 还有一些答案可以解释如何使用它 SO post 1 和; SO post 2 . 到目前为止,这非常有用,因为我无法将URL从Ajax函数传递到“路径”。

我是Ajax的新手,我习惯于使用 {% url main:all_json %} 为了我的行为。但是对于Ajax,我相信我不能使用这个符号。对吗?

出于某种原因,我所用的例子 url(r'^$') Django2.0之前的urlpatterns工作正常,但现在我在使用“path”时得到一个代码404。大多数可用的问题和教程都是Django 2.0之前的版本并使用 URL(R′^ $) URL模式。发行说明和文档没有提到使用Ajax的区别。

我的问题如下:

我是否需要在我的模板和/或urls.py中添加其他内容来帮助它找到URL(去掉404)?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/30689
 
1877 次点击  
文章 [ 2 ]  |  最新文章 6 年前