我是这个领域的新手。我使用Python Flask制作了一个简单的网站。还使用 MySQL 数据库和烧瓶创建了一个反向地理编码 API。
所有这些都托管在我自己的电脑中,即本地主机。现在我想做一个交互式网站(表单(。但我不想将其托管在像Amazon AWS这样的远程访问服务器上。 我的假设是,由于我的工作环境是我的电脑连接到内部网,其中许多其他人也连接在一起,我将在我的电脑上托管服务器,其他人将从中访问该网站。
由于我缺乏有关服务器和员工的理论知识,因此我无法这样做。任何阅读材料的建议,不胜感激。
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>
如果我请求http://your_ip:5000/rev_geocode/lat=31'OR DROP TABLE rev_geocode; — priv,long=12
- 会发生什么?
在 Linux 终端上使用ifconfig
coomand 来确定机器的 IP 地址。将 127.0.0.1 替换为 URL 中的 IP 地址。内部网中的其他用户现在可以访问你的应用。
您可以将本地主机作为您自己的 IP 地址。然后使用该 IP 运行程序,同样,您可以使用相同的 IP 在同一 LAN 中连接的计算机上运行。
更改允许的主机=[IP 地址]
然后在上面运行.
很简单,将app.run(debug=True)
更改为app.run(host= '0.0.0.0')
。然后其他人可以通过转到您机器的 ip 找到您的表单。
烧瓶文档 - 在"外部可见服务器"下