如何在 Python 中发出异步请求

How to make asynchronous Requests in Python

我一直在开发一个 Django 应用程序,其中我有一个页面,用户可以在表单中输入字符串(用于查询),该表单将使用 [=34] 连接到 url =] 用于获取音乐会数据。我尝试使用 ajax 请求 urls,但显然 api 的服务器不允许客户端请求数据,这意味着必须在python.

中的服务器端

我看过一些像 this one and this other one 这样的 SO 帖子,但它们似乎都有可以在以一般方式使用 python 或不使用框架的情况下实现的解决方案。我应该如何在 Django 中的服务器端请求此数据?

编辑:

使用以下代码时,由于某种原因我遇到了 400 错误。在视图中完成的所有操作都是基于表单输入的站点请求。我只是在测试变量是否可以连接到 URL 但似乎确实设置了代码,以便在用户单击提交时发布表单数据,因为我有另一个具有相同结构的视图它会发送一封包含表单变量的电子邮件,所以我不确定为什么这不起作用。

函数来自 views.py:

def search(request):
    form = SearchForm(request.POST or None)
    if form.is_valid():
        form_artistSelect = form.cleaned_data.get("artist_select")
        form_city = form.cleaned_data.get("city")
        form_state = form.cleaned_data.get("state")
        mile_radius = form.cleaned_data.get("radius")
        print "testing"
        url = "http://api.bandsintown.com/events/search?artists[]=" + form_artistSelect + "&location=" +form_city+","+ form_state+"&radius="+ mile_radius + "&format=json&app_id=YOUR_APP_ID"
        data = json.load(urllib2.urlopen(url))
        print data
    context = {
        
        "form" : form
    }
    return render(request,"searchform.html" , context)

页面使用的表单属性

class SearchForm(forms.Form):
    artist_select = forms.CharField()
    city = forms.CharField()
    state = forms.CharField()
    radius = forms.CharField()

试试这个,我认为问题可能出在 url:

中的无效字符
form_artistSelect = urllib2.quote(form.cleaned_data.get("artist_select"))
form_city = urllib2.quote(form.cleaned_data.get("city"))
form_state = urllib2.quote(form.cleaned_data.get("state"))
mile_radius = urllib2.quote(form.cleaned_data.get("radius"))