按submit时,表单应将值传递给服务器。但我发现了500个内部服务器错误。下面是my views.py代码:-
from app import app
from flask import render_template,request
import feedparser
import json
@app.route('/')
@app.route('/index')
def search():
return render_template('index.html')
@app.route('/searchRSS',methods=['POST'])
def search_results():
feed = feedparser.parse("http://news.google.com/news?hl=en&gl=in&q="+request.form['query']+"&um=1&output=rss" )
posts = []
for i in range(0,len(feed['entries'])):
posts.append({
'date': feed['entries'][i].title,
'title': feed['entries'][i].updated,
'description': feed['entries'][i].description
})
return json.dumps(posts, separators=(',', ':'))
这里是index.html:-
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
window.onload=function (){
$("#searcher").submit(function(ev) {
/* stop form from submitting normally */
ev.preventDefault();
$.post("/searchRSS", $("#searcher").serialize(),function(o) {document.getElementById("result").innerHTML=o;});
})};
</script>
<form id="searcher" method="post" action="#">
<input type="text" id="query" name="query" required/>
<input type="submit" value="Get Feed"/>
</form>
<div id="result"></div>
最佳答案
Chardet 2.1.3似乎没有被移植到Python 3。您可以阅读作者关于移植chardethere的案例研究。如果您查看PyPi发行版的源代码,那么它与案例研究中的Python 3端口不同。
我在GitHub上找到了一个chardet分支,它被移植到Python 3中:https://github.com/byroot/chardet。你可以用那个叉子来测试它,看看它是否能解决这个问题。
编辑:
您应该能够使用pip安装:pip install https://github.com/byroot/chardet/zipball/master
您可能希望首先删除当前chardet或在其自己的virtualenv中测试它。