我有很多线程的应用程序。其中之一是烧瓶,用于实现(辅助)API。它使用时负载低,并且永远不会暴露在Internet上,因此内置flask
Web服务器非常好。
我当前的代码如下所示:
class API:
# ... all other stuff here, skipped
def run():
app = flask.Flask('API')
@app.route('/cmd1')
def cmd1():
self.cmd1()
@app.route('/cmd2')
def cmd2()
self.cmd2()
app.run()
我觉得我做错了,因为所有文档都说“在模块级别创建flask应用程序”。但是我不想这样做-
它与我的测试弄混了,并且API只是大型应用程序的一小部分,该应用程序具有自己的结构和协议(每个“应用程序”都是在一个或多个线程中运行的单独的类)。
我如何在课堂上使用Flask?
尽管此方法有效,但并不符合Flask样式指南。如果您需要在项目中包装一个Flask应用程序,请根据需要创建一个单独的类并添加应执行的功能
from flask import Flask, Response
class EndpointAction(object):
def __init__(self, action):
self.action = action
self.response = Response(status=200, headers={})
def __call__(self, *args):
self.action()
return self.response
class FlaskAppWrapper(object):
app = None
def __init__(self, name):
self.app = Flask(name)
def run(self):
self.app.run()
def add_endpoint(self, endpoint=None, endpoint_name=None, handler=None):
self.app.add_url_rule(endpoint, endpoint_name, EndpointAction(handler))
def action():
# Execute anything
a = FlaskAppWrapper('wrap')
a.add_endpoint(endpoint='/ad', endpoint_name='ad', handler=action)
a.run()
这里要注意一些事情:
EndpointAction
应该是将执行您的功能并生成空200响应的包装器。如果需要,您可以编辑功能__call__
定义了方法的任何东西问题内容: 我有一些类可以执行一些MySQL查询和准备好的语句。但是,我不知道如何在这些类中合并我的PDO对象。例如,我想做这样的事情: 不幸的是,它不起作用。有人可以建议一种优雅的方法吗?谢谢你的时间。抱歉,我是新手,如果您不清楚任何事情,请留下任何评论,我会尽力答复! 问题答案: 您可以在实现单例模式的类中实例化与数据库的连接。连接将完成一次,所有其他对象/脚本都可以轻松访问该类。 在下面的示
Scala课堂是Twitter启动的一系列讲座,用来帮助有经验的工程师成为高效的Scala 程序员。Scala是一种相对较新的语言,但借鉴了许多熟悉的概念。 因此,课程中的讲座假设听众知道这些概念,并展示了如何在Scala中使用它们。我们发现这是一个让新工程师能够快速上手的有效方法。网站里的是伴随这些讲座的书面材料,这些文字材料本身也是很有用的。 方法 我们认为最有意义的教学方式是,不要把Scal
问题内容: 如果一个类实现了另一个类,那是什么意思?我找到了以下代码示例:http : //www.java2s.com/Code/Php/Class/extendsandimplement.htm 但不幸的是,它没有任何解释… 问题答案: 实现是指它采取接口指定的指定 行为 。考虑以下接口: 无论是和类实现的接口。 接口的优点在于,我们现在可以通过接口引用此类的实例。考虑以下示例: 该循环的输出
问题内容: 我正在使用登录功能,但是遇到了我无法弄清的错误。 这是我的模型登录类: 最后一个函数给出错误“ 在类中找不到方法’close’ ”,“ 在主题类中找不到引用的方法。 ” 这是我的数据库类: 路径是正确的,事实并非如此。可能是什么错误? 问题答案: PhpStorm无法确定您的字段是什么类型。您可以通过简单的PHPDoc注释提供typehint来提供帮助:
当一个类必须有某种对象的容器(集合)时,有几种选择,我想知道我更喜欢哪种实现。 以下是我找到的选项: 优点:AClass不依赖于集合的具体实现(在本例中为列表)。 缺点:AClass没有添加和删除元素的接口 优点:与IEnumerable相同,并且具有添加和删除元素的接口 缺点:ICollection接口定义了很少使用的其他方法,仅仅为了接口而实现这些方法是很无聊的。IEnumerable LIN
问题内容: 我自己的班级需要什么支持才能打印出来?例如,我有: 类应使用什么方法来使此代码起作用?也许是这样的: 我猜测该方法必须重载。我对吗?这够了吗? 问题答案: 您可以使用来打印任何对象。println的此重载版本将打印出您的对象的表示形式。如果要自定义要打印的内容,则必须重写该方法,例如: 如果不重写该方法,将使用class的默认实现,该实现具有以下形式(类名称和实例哈希码的十六进制表示形