我是这个领域的新手。我使用Python Flask建立了一个简单的网站。还使用MySQL数据库和flask创建了反向地理编码api。
所有这些都托管在我自己的PC中,即本地主机。现在,我想制作一个交互式网站(窗体)。但我不想将其托管在可远程访问的服务器(如Amazon AWS)上。 我的假设是,由于我的工作环境是将我的PC连接到还连接了许多其他设备的Intranet,因此我将在该PC上托管服务器,而其他人将从该PC访问网站。
由于我缺乏有关服务器和员工的理论知识,因此无法这样做。任何建议阅读材料表示赞赏。
from flask import Flask, jsonify
import mysql.connector
my_db = mysql.connector.connect(
host="localhost",
user="root",
passwd="XXXX",
database="cat")
my_cursor = my_db.cursor()
app = Flask(__name__)
@app.route('/rev_geocode/lat=<float:lat>,long=<float:long>', methods['GET'])
def rev_geocode(lat,long):
my_cursor.execute("SELECT address FROM rev_geocode WHERE lat = {} AND lon = {};".format(lat, long))
data = my_cursor.fetchall()
return jsonify({"address":str(data[0][0])})
if __name__ == '__main__':
app.run(debug=True)
# http://127.00.1:5000/rev_geocode/lat=<float:lat>,long=<float:long>
答案 0 :(得分:1)
如果我请求http://your_ip:5000/rev_geocode/lat=31'OR DROP TABLE rev_geocode; — priv,long=12
-会发生什么?
答案 1 :(得分:0)
您可以将本地主机作为自己的IP地址。然后使用该IP运行程序,类似地,您可以使用相同的IP在同一LAN中连接的计算机上运行。
更改您允许的主机= [ip地址]
然后在其上运行。
答案 2 :(得分:0)
非常简单,将app.run(debug=True)
更改为app.run(host= '0.0.0.0')
。然后其他人可以通过访问您机器的ip来找到您的表单。
Flask docs-在“外部可见服务器”下
答案 3 :(得分:0)
在Linux终端上使用ifconfig
命令来确定您计算机的IP地址。将127.0.0.1替换为URL中的IP地址。 Intranet中的其他用户现在可以访问您的应用。