如何使用JQuery和Django从SQLite获取信息?

2024-04-19 03:33:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Django有个项目。在Python视图脚本中,我创建了一个数组,并将该值添加到SQLite数据库中”数据库sqlite3“由

request.user.profile.some_array = some_array

接下来,我用这种方式将这个数组发送到HTML文件:

^{pr2}$

“的”字段.html“与”应用程序js“有:

script src="{% static 'app.js' %}

我需要从'应用程序js'到“存储在数据库中的某个\u数组”数据库sqlite3“(在该位置”user.profile.some\u数组“如果使用Python),用JavaScript做一些更改并保存。在

互联网社区建议使用AJAX,但我找不到我需要的例子。你能帮帮我吗?在

另外,我用Pycharm


Tags: 项目django脚本视图数据库应用程序sqliterequest
1条回答
网友
1楼 · 发布于 2024-04-19 03:33:56

社区建议使用AJAX,因为这是客户端浏览器中的脚本与服务器“后台”通信的方式。但要使用它,您仍然需要API或一些Django视图,这些视图将获取AJAX的请求、进行一些操作并发送响应。在w3schools和{a2}上了解更多关于AJAX的信息。在

但对于基本的解决方案,您需要两件事-正确的AJAX请求和一些Django的API(带有视图)来处理它们。在

让我们从API开始,为脚本创建两个URL:

url(r'^api/get_array/(?P<uid>\d+)$', views.GetArrayView.as_view(), name='get_array'),
url(r'^api/save_array$', views.SaveArrayView.as_view(), name='save_array'),

第一个视图将通过给定的id获取用户,然后将其数组(作为JSON)发回。在

第二个视图将获取POST数据并将其保存到数据库中。在

^{pr2}$

关于JSON响应,read this。 现在,阿贾克斯。要获取数组,请在脚本中使用:

$.ajax({
    type: "GET",
    url: '/api/get_array/'+user_id,
    success: function(response){
        // your array is in the response.array
    },
    error: function(jqXHR, textStatus, errorThrown){
        // handle any errors here
    }
});

$.ajax({
    type: "POST",
    url: '/api/save_array/',
    data:{
        array: your_changed_array,
        uid: user_id,
        some_other_data: other_data,
    },
    success: function(response){
        if(response.status == "OK"){
            // everything went fine
        }
        else{
            // you can send other responses and handle them here
        }
    },
    error: function(jqXHR, textStatus, errorThrown){
        // handle any errors here
    }
});

这是非常基本的设置,我鼓励您阅读更多关于AJAX请求和Django REST Framework API(JSON GET/POST/UPDATE/deleteapi的框架)。在

最后一件事-Django中的每个POST请求都需要CSRF令牌。在JavaScript中使用它们很复杂,这里是docs for that。如果你想要快捷方式,你可以关闭它的选定视图,但我不建议它。更多info here.

相关问题 更多 >