from flask import Flask, render_template, jsonify, request, json
import pymysql
app = Flask(__name__)
初始化flask,没用flask操作数据库,所以没什么配置文件
@app.route("/")
def index():
return render_template("index.html")
根路由返回模板页面
@app.route("/install",methods=["POST"])
def install_locations():
# 下载房源坐标
data = request.json
data = json.dumps(data)
with open("location.json", "w") as f:
f.write(data)
return "done"
下载房源坐标的路由
@app.route("/location_all")
def location_all():
# 返回所有房源坐标
con = pymysql.connect(host="localhost", port=3306, database="ziru", user="root", password="mysql", charset="utf8")
cur = con.cursor()
sql = "select * from locationtable;"
cur.execute(sql)
location_data = cur.fetchall()
cur.close()
con.close()
data = []
for (code, location) in location_data:
location = json.loads(location)
info = {
"code":code,
"address": location
}
data.append(info)
final_data={"result":data}
return jsonify(final_data)
地图加载完毕后,自动向后台请求所有房源的坐标点
这个函数,通过pymsql查出所有数据返还给前端
@app.route("/infor/<code>")
def sendinfor(code):
print(code)
con = pymysql.connect(host="localhost", port=3306, database="ziru", user="root", password="mysql", charset="utf8")
cur = con.cursor()
sql_p = "select price from pricetable where id = %s;"%code
cur.execute(sql_p)
price = cur.fetchone()
sql_img = "select imgsrc from imgsrctable where id = %s"%code
cur.execute(sql_img)
img_src = cur.fetchone()
sql_more = "select more from moretable where id = %s"%code
cur.execute(sql_more)
more = cur.fetchone()
cur.close()
con.close()
data = {"price": price[0], "img_src": img_src[0], "more_href": more[0]}
return jsonify(data)
当前端点击房源时,查询数据库返回基本信息
if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000,debug=True)
开启服务
这个例子里,服务端的例子还是非常非常简单的
主要内容在前端JS里