我有一个javascript文件、一个html文件和一个python文件。在Java脚本函数中,作为事件的结果生成一个数据,我可以在浏览器控制台中看到该数据。我也想在python中看到这些数据。我在一个名为Hype4的程序中创建了这个网站,javascript和html文件是自动生成的。我编写了javascript函数和python文件,但无法从js函数向python发送数据
Python文件:
from flask import Flask, render_template, request, jsonify
import json
import pandas as pd
app = Flask(__name__)
@app.route("/")
def index():
return render_template("cafeproje.html")
@app.route('/receiver', methods = ["POST"])
def receiver():
data = request.get_json()
df = pd.read_json(data)
print(data)
return jsonify(data)
if __name__=="__main__":
app.run(debug=True)
Html文件:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="chrome=1,IE=edge" />
<title>CafeProje</title>
<style>
html {
height:100%;
}
body {
background-color:#FFF;
margin:0;
height:100%;
}
</style>
<!-- copy these lines to your document head: -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<meta name="viewport" content="user-scalable=no, width=320" />
<!-- end copy -->
</head>
<body>
<!-- copy these lines to your document: -->
<div id="cafeproje_hype_container" class="HYPE_document" style="margin:auto;position:relative;width:100%;height:100%;overflow:hidden;"></div>
<script src="static/js/cafeproje_hype_generated_script.js"></script>
<!-- end copy -->
<!-- text content for search engines: -->
<div style="display:none" aria-hidden=true>
<div>Garson Seçiniz</div>
<div>0</div>
<div>Garson İlgili miydi?</div>
<div> Arga Tek. Hizmetinizde</div>
<div></div>
<div>Garson Titiz miydi?</div>
<div>Garson Hızlı mıydı?</div>
<div>Evet</div>
<div>Tuvaleti Kullandınız mı?</div>
<div>Hayır</div>
<div>Anketimiz Bu Kadardı Teşekkürler</div>
<div>Tuvaletler Temiz Miydi?</div>
</div>
<!-- end text content: -->
</body>
</html>
Javascript函数:
function veriGonder (hypeDocument, element, event){
if (sayfaNo == "1") {
var id = idKaydet;
var sayfa = sayfaNo;
var garson = garson;
var oy = "NONE";
var secenek = "NONE";
datas = [{ id: idKaydet, sayfa: sayfaNo, garson: garson }]; console.log("Sayfa 1 Gönderildi: ");
console.log(datas);
$.ajax({
type: "POST",
url:"/receiver",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ id: idKaydet, sayfa: sayfaNo, garson: garson })
});
}
else if (sayfaNo == "2") {
var id = idKaydet;
var sayfa = sayfaNo;
var garson = "NONE";
var oy = oyMiktari;
var secenek = "NONE";
datas = [{ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari }]; console.log("Sayfa 2 Gönderildi: ");
console.log(datas);
$.ajax({
type: "POST",
url:"/receiver",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari })
});
}
else if (sayfaNo == "3") {
var id = idKaydet;
var sayfa = sayfaNo;
var garson = "NONE";
var oy = oyMiktari;
var secenek = "NONE";
datas = [{ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari }]; console.log("Sayfa 3 Gönderildi: ");
console.log(datas);
$.ajax({
type: "POST",
url:"/receiver",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari })
});
}
else if (sayfaNo == "4") {
var id = idKaydet;
var sayfa = sayfaNo;
var garson = "NONE";
var oy = oyMiktari;
var secenek = "NONE";
datas = [{ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari }]; console.log("Sayfa 4 Gönderildi: ");
console.log(datas);
$.ajax({
type: "POST",
url:"/receiver",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari })
});
}
else if (sayfaNo == "5") {
var id = idKaydet;
var sayfa = sayfaNo;
var garson = "NONE";
var oy = "NONE";
var secenek = secenek;
datas = [{ id: idKaydet, sayfa: sayfaNo, secenek: secenek }]; console.log("Sayfa 5 Gönderildi: ");
console.log(datas);
$.ajax({
type: "POST",
url:"/receiver",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ id: idKaydet, sayfa: sayfaNo, secenek: secenek })
});
}
else if (sayfaNo == "5m1") {
var id = idKaydet;
var sayfa = sayfaNo;
var garson = "NONE";
var oy = oyMiktari;
var secenek = "NONE";
datas = [{ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari }]; console.log("Sayfa 5m1 Gönderildi: ");
console.log(datas);
$.ajax({
type: "POST",
url:"/receiver",
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ id: idKaydet, sayfa: sayfaNo, oy: oyMiktari })
});
}
}
Hype4自动生成的javascript代码(共享链接,因为它不适合这里): https://www.codepile.net/pile/wA75kWrj
@balderman
Python:
我没有更改其他代码
输出:
请阅读read_json的文档:
您没有在那里传递有效的JSON str。您正在传递一本词典,该词典比您创建的词典高一行:
这就是为什么参数是字典时出现错误:
删除行
data = request.get_json()
,并将响应作为json字符串传递到read_json()
相关问题 更多 >
编程相关推荐