我正在摆弄Flask和Ajax,看看我可以用它为我正在进行的一个更大的项目做些什么。我试图得到一些数据在一个变量到我的python程序能够使用和操纵。我有一个脚本在html文件,返回当前的URL。我怎么能得到url到我的python程序与AJAX?
我将在下面附上我的相关代码:
index . html
<html lang="en">
<head>
<meta charset="UTF-8">
<title>HELP</title>
</head>
<body>
<p>I am {{person}} and i am {{age}} years old, I am a {{ql}}</p>
<form name="passdata" action="." method="post">
<label>Name:</label>
<input type="text" name="name">
<label>Age:</label>
<input type="text" name="age">
<label>Date of Birth:</label>
<input type="text" name="dateofbirth">
<input type="submit" value="submit">
</form>
<p id="demo"></p>
<script>
let geturl = window.
document.getElementById("demo").innerHTML =
"The full URL of this page is:<br>" + geturl;
</script> //getting the current url
</body>
</html>
main.py
from flask import Flask, render_template, request
app = Flask(__name__)
name = "random"
age = "21"
qualification = "software engineer"
@app.route('/')
def index():
return render_template('index.html', person=name, age=age, ql=qualification)
@app.route('/', methods=['POST'])
def getvalue():
name2 = request.form['name']
age = request.form['age']
db = request.form['dateofbirth']
return name2
if __name__ == '__main__':
app.run(debug=True)
如果你需要任何澄清,请告诉我。提前谢谢。
通常当你向flask中的路由发送变量时,你会将路由设计为:
@app.route('/route_to_send_to/<variable>', methods=['GET'])
def route_to_send_to(variable):
variable_sent = variable
return jsonify({'variable':variable})
另一个提示通常在使用ajax调用时,响应可能是json响应,您可以使用jsonify发送回。
你所需要做的就是把它调用到路由中,替换成你想要发送的变量。
你也可以用Ajax发送一个post请求来隐藏数据,但是你需要改变路由来处理post请求。
Ajax调用可能类似于:
var url = '/route_to_send_to/ + name;
return $.ajax({
type: "GET",
url: url,
}).then(function(data) {// Do something with the responce})
});
考虑到下面的评论,我可能建议您阅读本文,以更好地理解flask和ajax是如何协同工作的。
Miguel Grinberg的这个惊人的Flask教程可能是我遇到过的学习Flask、框架和良好行为的最好的资源之一。它涵盖了从绝对基础到极其高级的所有主题,非常值得一读。