Python 类型错误:';模块';对象在Django中不可调用
我试图在django中添加WikipediaAPI,并通过view.py中的HTML输入处理wikipediaPython 类型错误:';模块';对象在Django中不可调用,python,django,forms,wikipedia-api,Python,Django,Forms,Wikipedia Api,我试图在django中添加WikipediaAPI,并通过view.py中的HTML输入处理wikipedia from django.contrib.auth.forms import UserCreationForm from django.shortcuts import render from django.http import HttpResponse import wikipediaapi from .forms import ContactForm, ColorfulConta
from django.contrib.auth.forms import UserCreationForm
from django.shortcuts import render
from django.http import HttpResponse
import wikipediaapi
from .forms import ContactForm, ColorfulContactForm
def _form_view(request, template_name='basic.html', form_class=ContactForm):
if request.method == 'POST':
form = form_class(request.POST)
mes = request.POST.get("message")
search = mes.split(' ')
query = search[2]
#return HttpResponse(mes)
mywiki(query)
if form.is_valid():
pass # does nothing, just trigger the validation
else:
form = form_class()
search_id = request.POST.get('message', None)
#
return render(request, template_name, {'form': form})
def mywiki(query):
wiki_wiki = wikipediaapi.wikipedia('en')
page_py = wiki.page(query)
title = page_py.title
return HttpResponse(title)
#return HttpResponse(mes )
我收到一个错误报告:
TypeError: 'module' object is not callable
谁能帮我一下错误背后的原因:
正确的格式是
wikipediapi.Wikipedia('en')
,而不是wikipediapi.Wikipedia('en'))
请注意,维基百科中的W是大写的 您还应该使用
page_py = wiki_wiki.page(query)
而不是
因为您的对象变量是wiki\u wiki而不是wiki。问题似乎在于行
wiki_wiki = wikipediaapi.wikipedia('en')
根据维基百科API文档
wiki_wiki = wikipediaapi.Wikipedia('en')
Wikipedia
以大写字母W
开头,调用该名称创建实例。当前正在使用的是wikipedia。wikipedia是一种Python,作为异常提示,它是不可调用的。当接收异常时,共享堆栈跟踪可能会更有帮助,因此很清楚异常是在哪里引发的。该算法工作正常,单独工作,但不是在Django中使用我在回答中提到的编辑更新代码后,您得到的erorr是什么?名称“wiki”未定义您应该使用page\u py=wiki\u wiki.page(query)
。不是wiki.page(查询)。我在回答中提到了这一点。如果这个答案对你有效,请接受@SamiUllah
wiki_wiki = wikipediaapi.Wikipedia('en')