提交 6530f284 作者: 陈海飞

add README

父级
#多轮对话python实现
## 安装依赖
python版本 3.6+
pip3 install flask
## 启动
./start.sh
\ No newline at end of file
import flask
from flask import request
from flask import jsonify
'''
flask: web框架,可以通过flask提供的装饰器@server.route()将普通函数转换为服务
登录接口,需要传url、username、passwd
'''
# 创建一个服务,把当前这个python文件当做一个服务
server = flask.Flask(__name__)
# server.config['JSON_AS_ASCII'] = False
# @server.route()可以将普通函数转变为服务 登录接口的路径、请求方式
jiangsu_cities=['南京','无锡','徐州','常州','苏州','南通','连云港','淮安','盐城','扬州','镇江','泰州','宿迁','江阴','宜兴','邳州','新沂','溧阳','昆山','常熟','张家港','太仓','启东','海安','如皋','东台','仪征','高邮','丹阳','扬中','句容','兴化','靖江','泰兴']
zhejiang_cities=['杭州','宁波','温州','湖州','嘉兴','绍兴','金华','衢州','舟山','台州','丽水']
anhui_cities=['合肥','黄山','芜湖','马鞍山、安庆','淮南','阜阳','淮北','铜陵','亳州','宣城','蚌埠','六安','滁州','池州','宿州']
top_cities=['南京','杭州','合肥']
@server.route('/juntangtouzi', methods=['get'])
def juntangtouzi():
# 获取通过url请求传参的数据
city = request.values.get('pianqu')
print(city)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉您选择的片区 "+ city + " 未查询到均开发市政道路均摊投资费用";
if city in top_cities:
answer = "您选择位置片区 " + city + " 开发市政道路均摊投资大约9.035万/亩。";
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
answer = "您选择位置片区 " + city + " 开发市政道路均摊投资大约8.214万/亩。";
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/lvhuatouzi', methods=['get'])
def lvhuatouzi():
# 获取通过url请求传参的数据
city = request.values.get('pianqu')
print(city)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉您选择的片区 "+ city + " 未查询到开发景观绿化均摊投资费用";
if city in top_cities:
answer = "您选择位置片区 " + city + " 开发景观绿化均摊投资大约5.878万/亩。";
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
answer = "您选择位置片区 " + city + " 开发景观绿化均摊投资大约5.343万/亩。";
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/anzhifeiyong', methods=['get'])
def anzhifeiyong():
# 获取通过url请求传参的数据
city = request.values.get('city')
people = request.values.get('people')
print(city)
print(people)
area = (int(people)) *40
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您计算 "+ city + " 的安费房建设费用";
if city in top_cities:
money = 0.363 * area
answer = "您选择位置 " + city + ",安置 " + people +" 人的安置房建设成本为" + str(money) + "万元<br>"
#answer = answer + "计算依据:"+ people +"*人均住宅面积(40平)*0.363万/平 = " + str(money) + "万元";
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
money = 0.33 * area
answer = "您选择位置 " + city + ",安置 " + people + " 人的安置房建设成本为" + str(money) + "万元<br>"
#answer = answer + "计算依据:" + people + "*人均住宅面积(40平)*0.33万/平 = " + str(money) + "万元"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/anzhichewei', methods=['get'])
def anzhichewei():
# 获取通过url请求传参的数据
city = request.values.get('city')
hushu = request.values.get('hushu')
hushu = hushu.replace("户","")
print(city)
print(hushu)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您计算 "+ city + " 的安费房车位数量";
if city in top_cities:
chewei = 1.137 * int(hushu)
answer = "您选择位置 " + city + ",安置 " + hushu +" 户安置房项目一般配置" + format(chewei, "0.2f") + "个车位<br>"
#answer = answer + "计算依据:"+"安置户数(" +hushu + ")* 户均车位数(1.137) = " + format(chewei, "0.2f") +"车位"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
chewei = 1.034 * int(hushu)
answer = "您选择位置 " + city + ",安置 " + hushu + " 户安置房项目一般配置" + format(chewei, "0.2f") + "个车位<br>"
#answer = answer + "计算依据:" + "安置户数(" + hushu + ")* 户均车位数(1.034) = " + format(chewei, "0.2f") + "车位"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/anzhicheweifeiyong', methods=['get'])
def anzhicheweifeiyong():
# 获取通过url请求传参的数据
city = request.values.get('city')
hushu = request.values.get('hushu')
hushu = hushu.replace("户","")
print(city)
print(hushu)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您计算 "+ city + " 的安费房车位费用";
if city in top_cities:
feiyong = 1.137 * int(hushu) * 16.5
answer = "您选择位置 " + city + ",安置 " + hushu +" 户安置房项目配置停车位需要花" + format(feiyong, "0.2f") + "万元<br>"
#answer = answer + "计算依据:"+"安置户数(" +hushu + ")*户均车位数(1.137)*单个车位平均投资(16.5万元)= " + format(feiyong, "0.2f") +"万元"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
feiyong = 1.034 * int(hushu) * 15
answer = "您选择位置 " + city + ",安置 " + hushu + " 户安置房项目配置停车位需要花" + format(feiyong, "0.2f") + "万元<br>"
#answer = answer + "计算依据:" + "安置户数(" + hushu + ")*户均车位数(1.034)*单个车位平均投资(15万元)= " + format(feiyong,"0.2f") + "万元"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/daoludang', methods=['get'])
def daoludang():
# 获取通过url请求传参的数据
city = request.values.get('city')
road = request.values.get('road')
print(city)
print(road)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您估算 "+ city + " 的单公里造价";
if city in top_cities:
if road == "双向两车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:3360.44万/公里"
if road == "双向四车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:4120.51万/公里"
if road == "双向六车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:7512.97万/公里"
if road == "双向八车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:11046.10万/公里"
if road == "主干路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:9092.19万/公里"
if road == "次干路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:4826.29万/公里"
if road == "支路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:3365.70万/公里"
if road == "快速路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:14741.1万/公里"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
if road == "双向两车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:3054.95万/公里"
if road == "双向四车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:3745.92万/公里"
if road == "双向六车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:6829.98万/公里"
if road == "双向八车道":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:10041.91万/公里"
if road == "主干路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:8265.63万/公里"
if road == "次干路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:4387.53万/公里"
if road == "支路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:3059.73万/公里"
if road == "快速路":
answer = "您选择位置 " + city +" " + road + "的单公里造价为:13401万/公里"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/daolufeiyong', methods=['get'])
def daolufeiyong():
# 获取通过url请求传参的数据
city = request.values.get('city')
road = request.values.get('road')
length = request.values.get('length')
length = length.replace("公里", "")
print(city)
print(road)
print(length)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您估算 "+ city + " 的道路建设造价";
if city in top_cities:
if road == "双向两车道":
feiyong = int(length) * 3360.44 /10000
answer = "您选择位置 " + city +" " + length +"公里 " + road + " 整体投资约为"+ format(feiyong, "0.2f")+ "亿元"
#answer += "<br>估算依据:3360.44万元/公里 * "+ length +"公里 = " + format(feiyong, "0.2f")+ "亿元"
if road == "双向四车道":
feiyong = int(length) * 4120.51/ 10000
answer = "您选择位置 " + city +" " + length +"公里 " + road + " 整体投资约为"+ format(feiyong, "0.2f")+ "亿元"
#answer += "<br>估算依据:4120.51万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "双向六车道":
feiyong = int(length) * 7512.97 / 10000
answer = "您选择位置 " + city +" " + length +"公里 " + road + " 整体投资约为"+ format(feiyong, "0.2f")+ "亿元"
#answer += "<br>估算依据:7512.97万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "双向八车道":
feiyong = int(length) * 11046.10 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:11046.10万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "主干路":
feiyong = int(length) * 9092.19 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:9092.19万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "次干路":
feiyong = int(length) * 4826.29/ 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:4826.29万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "支路":
feiyong = int(length) * 3365.70 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:3365.70万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "快速路":
feiyong = int(length) * 14741.1 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:14741.1万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
if road == "双向两车道":
feiyong = int(length) * 3054.95 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:3054.95万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "双向四车道":
feiyong = int(length) *3745.92 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:3745.92万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "双向六车道":
feiyong = int(length) * 6829.98 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:6829.98万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "双向八车道":
feiyong = int(length) * 10041.91/ 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:10041.91万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "主干路":
feiyong = int(length) * 8265.63 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:8265.63万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "次干路":
feiyong = int(length) * 4387.53 / 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:4387.53万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "支路":
feiyong = int(length) *3059.73/ 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:3059.73万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
if road == "快速路":
feiyong = int(length) * 13401/ 10000
answer = "您选择位置 " + city + " " + length +"公里 " + road + " 整体投资约为" + format(feiyong, "0.2f") + "亿元"
#answer += "<br>估算依据:13401万元/公里 * " + length + "公里 = " + format(feiyong, "0.2f") + "亿元"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/daolutouzizhangbi', methods=['get'])
def daolutouzizhangbi():
# 获取通过url请求传参的数据
city = request.values.get('city')
print(city)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您计算 "+ city + " 位置市政道路交通工程投资占比";
if city in top_cities:
answer = "你所选位置 " + city + " 道路交通工程投资一般占总投资的 32.9%"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
answer = "你所选位置 " + city + " 道路交通工程投资一般占总投资的 29.9%"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/schoolbiaozhun', methods=['get'])
def schoolbiaozhun():
# 获取通过url请求传参的数据
city = request.values.get('city')
school = request.values.get('school')
print(city)
print(school)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您计算 "+ city + " 学校项目结构工程费用";
if city in top_cities:
if school =="幼儿园":
answer = "你所选位置 " + city + " " +school +" 学校项目结构工程费用一般为 0.250万/平"
if school =="小学":
answer = "你所选位置 " + city + " " +school +" 学校项目结构工程费用一般为 0.326万/平"
if school =="初中":
answer = "你所选位置 " + city + " " +school +" 学校项目结构工程费用一般为 0.259万/平"
if school =="高中":
answer = "你所选位置 " + city + " " +school +" 学校项目结构工程费用一般为 0.258万/平"
if school =="K12" or school == "k12":
answer = "你所选位置 " + city + " " +school +" 学校项目结构工程费用一般为 0.298万/平"
if school =="九年一贯制":
answer = "你所选位置 " + city + " " +school +" 学校项目结构工程费用一般为 0.298万/平"
if school =="大学":
answer = "#转人工#"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
if school == "幼儿园":
answer = "你所选位置 " + city + " " + school + " 学校项目结构工程费用一般为 0.227万/平"
if school == "小学":
answer = "你所选位置 " + city + " " + school + " 学校项目结构工程费用一般为 0.296万/平"
if school == "初中":
answer = "你所选位置 " + city + " " + school + " 学校项目结构工程费用一般为 0.235万/平"
if school == "高中":
answer = "你所选位置 " + city + " " + school + " 学校项目结构工程费用一般为 0.234万/平"
if school == "K12" or school == "k12":
answer = "你所选位置 " + city + " " + school + " 学校项目结构工程费用一般为 0.271万/平"
if school == "九年一贯制":
answer = "你所选位置 " + city + " " + school + " 学校项目结构工程费用一般为 0.271万/平"
if school == "大学":
answer = "#转人工#"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
@server.route('/schoolbiaozhun2', methods=['get'])
def schoolbiaozhun2():
# 获取通过url请求传参的数据
city = request.values.get('city')
school = request.values.get('school')
print(city)
print(school)
# 获取url请求传的密码,明文
# 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None
answer = "抱歉无法为您计算 "+ city + " 学校项目结构工程费用";
if city in top_cities:
if school =="幼儿园":
answer = "你所选位置 " + city + " " +school +" 学校项目安装工程费用一般为 0.250万/平"
if school =="小学":
answer = "你所选位置 " + city + " " +school +" 学校项目安装工程费用一般为 0.326万/平"
if school =="初中":
answer = "你所选位置 " + city + " " +school +" 学校项目安装工程费用一般为 0.259万/平"
if school =="高中":
answer = "你所选位置 " + city + " " +school +" 学校项目安装工程费用一般为 0.258万/平"
if school =="K12" or school == "k12":
answer = "你所选位置 " + city + " " +school +" 学校项目安装工程费用一般为 0.298万/平"
if school =="九年一贯制":
answer = "你所选位置 " + city + " " +school +" 学校项目安装工程费用一般为 0.298万/平"
if school =="大学":
answer = "#转人工#"
elif city in jiangsu_cities or city in zhejiang_cities or city in anhui_cities:
if school == "幼儿园":
answer = "你所选位置 " + city + " " + school + " 学校项目安装工程费用一般为 0.227万/平"
if school == "小学":
answer = "你所选位置 " + city + " " + school + " 学校项目安装工程费用一般为 0.296万/平"
if school == "初中":
answer = "你所选位置 " + city + " " + school + " 学校项目安装工程费用一般为 0.235万/平"
if school == "高中":
answer = "你所选位置 " + city + " " + school + " 学校项目安装工程费用一般为 0.234万/平"
if school == "K12" or school == "k12":
answer = "你所选位置 " + city + " " + school + " 学校项目安装工程费用一般为 0.271万/平"
if school == "九年一贯制":
answer = "你所选位置 " + city + " " + school + " 学校项目安装工程费用一般为 0.271万/平"
if school == "大学":
answer = "#转人工#"
ret = {'returnCode': '0000', 'returnContent': {'city':city, 'answer':answer}, 'returnMessage': '成功'}
return jsonify(ret)
if __name__ == '__main__':
server.run(debug=True, port=8888, host='0.0.0.0')# 指定端口、host,0.0.0.0代表不管几个网卡,任何ip都可以访问
nohup python3 -u example.py &
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论