我正在开发一种具有TCP Server的软件,该服务器可以响应以专有协议完成的请求。
显然,该实现依赖于侦听固定端口并分析和管理原始请求和响应的套接字。
我应该在此服务中添加管理http请求的可能性。
我开始使用flask来管理模板渲染和响应创建,但是第二部分让我有些吃惊:
现在,我设法通过以下方式使该工作正常进行:
with open(template_file) as f:
template = f.read()
app = flask.Flask('my app') # create a context to render Response
with app.app_context():
context = {'title': 'mytitle',
'other_info':'.....',}
rendered = flask.render_template_string(template, **context)
response = flask.make_response(rendered)
answer = f'''HTTP/1.0 200 OK\nContent-Type: text/html\n\n {rendered} \n\n'''
sock.sendall(answer.encode())
sock.close()
在这种情况下,make_response
创建了一个Response
实例,您可以在其中获取呈现的html
代码,但是从Response到原始http
却是我的问题。
为解决这个问题,我手动添加了标题,但我认为烧瓶中有一种更好的方法来执行此操作,但无法弄清楚。
使问题更笼统:flask Web应用程序如何与他人共存?我必须控制流程的哪一点?