使用django和ajax计划的POST

时间:2018-03-28 07:45:14

标签: ajax django post frontend

好的伙计们,我对这个很难过!

所以,我试图定期将txt文件的内容发布到网站上。 (IE每天更新文件并发布新文件)

我使用django作为框架,让一切工作.....几乎。关注这个问题: Periodically fetch data and display it with Django

我设置了视图,模板和网址,以便在加载页面时调用$ .ajax。那部分有效!如果我手动将页面加载到浏览器中,则数据会更新并正确显示。然而,自动化它一直存在问题。

如果我不得不猜测,我会说......出于某种原因,没有浏览器时没有调用$ .ajax。

这是requests.py代码:

public void printList() { // Or build the String and return if you don't
    for(User u : myList)  // want to display it here
        System.out.println(format(u));
}
private String format(User u) {
    return String.format(""%s%12s%12d", u.getFirstName(), u.getLastName(), u.getAge());
}

而且,$ .ajax请求来自:

import requests
login_url = "http://127.0.0.1:8000/login/"
soup_url = "http://127.0.0.1:8000/soups/pull/"
test_url = "http://127.0.0.1:8000/profiles/myusername"
UN = 'myusername'
PW = 'mypassword'

with requests.session() as client:
    # get the login page
    client.get(login_url)

    # save session credentials
    csrftoken = client.cookies['csrftoken']
    login_data = {'username':UN,'password':PW,'csrfmiddlewaretoken': csrftoken}


    # login
    client.post(login_url, data=login_data)
    client.get(test_url)

    # get the page that loads $.ajax
    client.get(soup_url)

我尝试将$ ajax请求从$(文档)中拉出来。以防万一这是问题...但得到了相同的结果。当我手动加载页面时,服务器输出如下内容:

{% extends "base.html" %}


{% block script %}
<script>

$(document).ready(function(){
  function pullSoup(){
      var token = "{{ csrf_token }}"
      var soup_text = "{{ soup_text }}"
      var soup_text = soup_text.replace(/&amp;/gi, "&").replace(/&quot;/gi, "\"").replace(/&apos;/gi, "'").replace(/&gt;/gi, ">").replace(/&lt;/gi, "<");
      var formdata = "csrfmiddlewaretoken=" + token + "&content=" + soup_text


      $.ajax({
                  url: "/api/chirp/create/",
                  data: formdata,
                  method: "POST",

                  success: function(data){
                      console.log(data)
                      console.log(formdata)
                      attachChirp(data, true)
                  },

                  error: function(data){
                      console.log("error")
                      console.log(data.statusText)
                      console.log(data.status)
                  }
      })

  }

  pullSoup()



});
</script>
{% endblock script %}



{% block content %}
<p>you just pulled soup. unless you know what you're doing... you probably
    should not do that again.</p>
{% endblock content %}

当我运行requests.py文件时,它会输出:

Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[28/Mar/2018 01:39:33] "GET /soups/pull/ HTTP/1.1" 200 6478
[28/Mar/2018 01:39:35] "POST /api/chirp/create/ HTTP/1.1" 201 739

所以,它的退出代码为200,看起来很开心......除了帖子从未真正通过!我真的很感激任何想法/建议。我现在很有想法。谢谢!

0 个答案:

没有答案