我正在嘗試構建一個網站,用戶可以在其中輸入文本,這些文本將通過javascript接收,併發送到一個python函數,併發布到twitter。目前,python函數正在本地存儲,以及其他站點。但是,我的AJAX不是太好,我有幾個問題。使用AJAX在本地發送數據到Python函數
我已經寫了AJAX代碼,它向tweet發送一個POST請求到python函數,響應是整個python腳本。沒有連接到我的腳本正在偵聽的套接字。下面是AJAX函數和python腳本。任何想法發生了什麼?
在此先感謝您的幫助!
$(function(){
$('#PostTweet').on('click', function(e) {
var tweet = document.getElementById("theTweet").value;
var len = tweet.length;
if(len > 140){
window.alert("Tweet too long. Please remove some characters");
}else{
callPython(tweet);
}
});
});
function callPython(tweet){
window.alert("sending");
$.ajax({
type: "POST",
url: "tweet.py",
data: tweet,
success: function(response){
window.alert(response);
}
})
}
和Python的腳本:
from OAuthSettings import settings
import twitter
from socket import *
consumer_key = settings['consumer_key']
consumer_secret = settings['consumer_secret']
access_token_key = settings['access_token_key']
access_token_secret = settings['access_token_secret']
s = socket()
s.bind(('', 9999))
s.listen(4)
(ns, na) = s.accept()
def PostToTwits(data):
try:
api = twitter.Api(
consumer_key = consumer_key,
consumer_secret = consumer_secret,
access_token_key = access_token_key,
access_token_secret = access_token_secret)
api.PostUpdate(data)
makeConnection(s)
except twitter.TwitterError:
print 'Post Unsuccessful. Error Occurred'
def makeConnection(s):
while True:
print "connected with: " + str(na)
try:
data = ns.recv(4096)
print data
PostToTwits(data)
except:
ns.close()
s.close()
break
makeConnection(s)
非常感謝!這似乎是有道理的,我會做一些研究!出於好奇,你知道沒有微觀框架,這種事情是否可能? – CHByte
當然這是可能的,但正如@RobertMoskal在他的回答中所說的那樣會很乏味,而且有那麼多的圖書館,除了教育之外,我沒有理由這樣做。如果您不想爲此使用框架,請查看[wsgiref](https://docs.python.org/2/library/wsgiref.html#wsgiref.util.setup_testing_defaults)或[BaseHTTPServer](https://docs.python.org/2/library/basehttpserver.html #module-BaseHTTPServer),它們是Python標準庫的一部分。 – beezz