广告区

广告区


本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用 POST 请求发送数据在使用 AJAX 的 Django 中不起作用

发布于2022-05-18 03:20     阅读(699)     评论(0)     点赞(3)     收藏(2)



首先:我知道,网上有一些解决方案,但它们对我不起作用(因为他们使用例如 Jason 或者只是过时了)

我在 Django 中从事一个项目,并希望将 ajax 用于一项任务:

在 ajax 处理数据后,我想将数据从我的模板文件传递到我的视图文件(使用 POST 请求),以再次使其在我的模板文件中可见。

模板文件 --> 已处理的数据 --> POST-request --> views.py --> 模板文件

但这对我不起作用。

我的HTML 模板文件

...

<script type="text/javascript">

    var csrftoken = jQuery("[name=csrfmiddlewaretoken]").val();

    function csrfSafeMethod(method) {
        return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
    }

    $.ajaxSetup({
        beforeSend: function (xhr, settings) {
            if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
                xhr.setRequestHeader("X-CSRFToken", csrftoken);
            }
        }
    });

    $.ajax({
        url: "/save",
        data: {
            'value': inputDataArray  //I have already defined "inputDataArray" before
        },
        success: function (res, status) {
            alert(res);
            alert(status);
        },
        error: function (res) {
            alert(res.status);                                                                                                                          
        }
    });
</script>

我的views.py文件:

def save(request):
    if request.method == 'POST':
        request_getdata = request.POST.get("value", None) 
    return render(request, "response.html", {"data":request_getdata})     

urls.py文件:

urlpatterns = [
    path('', views.index , name='index'),
    path('save', views.save , name='save'),]

所以我尝试在“ response.html ”中显示它......

{{data}}

...但它只会重新加载当前页面并且不会将任何数据传递给 response.html 文件。

有谁知道我的错误是什么?

非常感谢提前

PS:这是我的项目结构:


│   db.sqlite3
│   manage.py
├───myapp
│   │   admin.py
│   │   apps.py
│   │   models.py
│   │   tests.py
│   │   urls.py
│   │   views.py
│   │   __init__.py
│   │
│   ├───migrations
│   │       __init__.py
│   │
│   └───__pycache__
│           urls.cpython-39.pyc
│           views.cpython-39.pyc__init__.cpython-39.pyc
├───static
│   └───myapp
│       └───css
│               index.css
├───templates
│       index.html
│       result.html
└───myapp
    │   asgi.py
    │   settings.py
    │   urls.py
    │   wsgi.py
    │   __init__.py
    │
    └───__pycache__
        ...

解决方案


代替

urlpatterns = [
    path('', views.index , name='index'),
    path('save', views.save , name='save'),]

尝试 :

  urlpatterns = [
        path('', myapp.views.index , name='index'),
        path('save',myapp.views.save , name='save')






所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1523230/881eae3b1726598c7f7b/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

3 0
收藏该文
已收藏

评论内容:(最多支持255个字符)