flask-web项目实例(二),设置响应消息为xml格式
前言
最近公司需要写一个web接口,比较简单的项目。由此有了这篇记录,如有相同经历的同学,希望此篇文章能为你带来便利。
这里笔者推荐使用 PyCharm 来进行 python 项目开发,使用python+flask框架,简单易上手。
默认设置了虚拟环境venv,可以为创建python虚拟环境为当前项目使用。
直接上代码:
创建app.py文件
from flask import Flask
from jinja2 import Environment, FileSystemLoader
app = Flask(__name__)
@app.route('/uac/services/CheckAiuapTokenSoap', methods=['GET'])
def resp_login_xml():
result = replace_xml_content("user.xml", "xiaming")
# 返回消息为xml格式展示
return result, 200, {'Content-Type': 'text/xml; charset=utf-8'}
# 可不设置返回格式,直接返回result
# return result
def replace_xml_content(filename, APPACCTID):
"""
读取文件并将参数进行替换模板内容
:param
:return:组装好的返回报文内容
"""
env = Environment(loader=FileSystemLoader("data", 'utf-8'))
template = env.get_template(filename)
soap_body = template.render(APPACCTID=APPACCTID)
print(soap_body)
return soap_body.encode('utf-8')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000, debug=True)
创建data/user.xml文件
{{APPACCTID}} 使用jinja2 替换xml文件数据,不需要传参的,忽略此文件
<?xml version='1.0' encoding='UTF-8'?>
<USERRSP>
<HEAD>
<CODE>000</CODE>
<SID>000</SID>
<TIMESTAMP>20201221082621</TIMESTAMP>
<SERVICEID>CQYGPT</SERVICEID>
</HEAD>
<BODY>
<RSP>0</RSP>
<APPACCTID>{{APPACCTID}}</APPACCTID>
<MAINACCTID>10007308</MAINACCTID>
</BODY>
</USERRSP>
创建requirements.txt文件
快捷安装项目需要的第三方库
xmltodict
jinja2
flask
requests==2.21.0
Js2Py==0.60
tzlocal==2.0.0
启动程序,编译器会打印以下信息
打开网页http://localhost:5000+path 访问成功
# 可不设置返回格式,直接返回result
# return result