【问题标题】:How to delete data in FlutterUI through JSON?如何通过 JSON 删除 FlutterUI 中的数据?
【发布时间】:2018-11-28 18:33:36
【问题描述】:

基本上我想要的是删除我的 Django 数据库中的特定数据。 这就是我在 Flutter 中获取 JSON 的方式:

Future<String> getData() async{
http.Response response= await http.get(
    Uri.encodeFull("192.168.2.107:8000/api/"),
    headers: {
      "Accept" : "application/JSON"
    }
);

我只是不知道如何删除条目(例如“192.168.2.107:8000/api/16”)。我发现这是https://docs.flutter.io/flutter/dart-io/HttpClient/delete.html,但我不太明白我应该插入什么。

如果需要我的 urls.py :

url(r'^api/(?P<image_id>\d+)/$', views.get_rest_list,name='api'),

url(r'^api/delete/(?P<image_id>\d+)/$', views.delete,name='apiDelete'),

我希望我正确地描述了这个问题。

【问题讨论】:

  • 通过 http:await.delete(host, port, path) 删除并像您的示例一样设置标题。

标签: json django api dart flutter


【解决方案1】:

根据您发布的 Python,您似乎有一个 api 和一个 apiDelete 网址,所以您可能想要更改:

192.168.2.107:8000/api/

192.168.2.107:8000/apiDelete/

但是,我不确定您的服务器是如何工作的 - 如果它允许您使用 GET 请求进行删除(http.get 发出 GET 请求),您可能想弄清楚如何将其更改为使用 @987654327 @ 请求,然后使用 http.delete 代替(或至少使用 POST 并使用 http.post)。

【讨论】:

  • 现在它可以与 http.get 一起使用了。如果我使用 DELETE(或 POST)会有很大的不同吗?它更安全还是更有效?还是这样做只是一个好习惯?哦,谢谢你的回答:)
  • 规范说 GET 请求不应该有这样的副作用。浏览器可能会一时兴起使用 GET 预取或重新请求资源。例如,this thread 描述了使用 GET 请求获取车库门开启器并发现它自己“随机”打开的人。风险可能看起来很低(特别是如果此 URL 仅出现在您的应用程序中),但我绝对建议您学习正确操作,以便将来您知道如何操作,而不必担心风险有多大。
猜你喜欢
  • 2021-05-08
  • 1970-01-01
  • 2020-08-25
  • 2017-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多