我有一个Pylons应用程序,我想将一些逻辑移到单独的批处理过程中.我一直在主应用程序下运行它进行测试,但它将在数据库中做很多工作,我希望它是一个独立的进程,将在后台不断运行.主要的pylons应用程序将作业提交到数据库中,新进程将完成每个作业中所请求的工作.
如何将控制器作为独立脚本启动?
我目前有:
from warehouse2.controllers import importServer
importServer.runServer(60)
Run Code Online (Sandbox Code Playgroud)
并在控制器文件中,但不是控制器类的一部分:
def runServer(sleep_secs):
try:
imp = ImportserverController()
while(True):
imp.runImport()
sleepFor(sleep_secs)
except Exception, e:
log.info("Unexpected error: %s" % sys.exc_info()[0])
log.info(e)
Run Code Online (Sandbox Code Playgroud)
但是在命令行上启动ImportServer.py会导致:
2008-09-25 12:31:12.687000 Could not locate a bind configured on mapper Mapper|I
mportJob|n_imports, SQL expression or this Session
Run Code Online (Sandbox Code Playgroud) 我有PyDev的Eclipse设置,并且喜欢能够调试我的脚本/应用程序.我刚刚开始玩Pylons并且想知道是否有办法通过Eclipse启动paster服务器以便我可以调试我的webapp?
我正在使用带有Mako模板的Pylons,我想避免一直打字:
${ h.some_function_that_outputs_html() | n }
Run Code Online (Sandbox Code Playgroud)
我想以某种方式标记函数,或者将变量标记为安全(您可以在Django中执行此操作),因此我不必一直使用pipe-en.有任何想法吗?
我正在使用Sqlalchemy来定义我的表等等,这里是我提出的一些代码:
locations = Table('locations', Base.metadata,
Column("lat", Float(Precision=64), primary_key=True),
Column("lng", Float(Precision=64), primary_key=True),
)
Run Code Online (Sandbox Code Playgroud)
我在某处读到纬度和经度要求比浮点更精确,通常是双倍精度.所以我手动将精度设置为64,这是否足够?矫枉过正?这对我的情况有帮助吗?
有人可以向我解释当前的python webframworks如何组合在一起吗?
我听说过的三个是CherryPy,TurboGears和Pylons.然而我很困惑,因为TurboGears似乎使用CherryPy作为'控制器'(虽然它本身不是CherryPy的框架吗?),而TurbGears 2将建立在Pylons之上(我认为它是一样?).
我在Pylons项目中使用SQLAlchemy Python ORM.我有一个"Project"类,它与另一个类"Entry"有一对多的关系.我想在SQLAlchemy中进行查询,该查询为我提供了与其关联的一个或多个条目的所有项目.目前我正在做:
[project for project in Session.query(Project) if len(project.entries)>0]
Run Code Online (Sandbox Code Playgroud)
我知道这不是理想的,但我无法弄清楚如何做一个我需要的过滤器(例如Session.query(Project).filter(Project.entries.exists())).
有任何想法吗?
我注意到Python Web框架处理请求处理的三种主要方式:装饰器,带有单个请求方法的控制器类,以及带有GET/POST方法的请求类.
我很好奇这三种方法的优点.这些方法中有哪些主要优点或缺点?为了解决问题,这里有三个例子.
瓶子使用装饰器:
@route('/')
def index():
return 'Hello World!'
Run Code Online (Sandbox Code Playgroud)
Pylons使用控制器类:
class HelloController(BaseController):
def index(self):
return 'Hello World'
Run Code Online (Sandbox Code Playgroud)
Tornado使用请求处理程序类和类型的方法:
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
Run Code Online (Sandbox Code Playgroud)
哪种风格是最佳做法?
我创建了一个新的Pylons项目,并希望使用Cassandra作为我的数据库服务器.我打算使用Pycassa来使用cassandra 0.7beta.不幸的是,我不知道在哪里实例化连接以使其在我的应用程序中可用.
目标是:
另外,我应该知道一些重要的事情吗?当我看到一些评论时,"使用带有use_threadlocal = True的QueuePool时要小心,特别是启用了重试.可能需要同步以防止连接在另一个线程正在使用时发生变化.",这究竟是什么意思?
谢谢.
- 皮埃尔
我现在已经在Pylons开发了一段时间,并且最近了解到他们正在与另一个框架合并以创建金字塔.
我一直在查看示例代码以查看差异,这会引起一些混乱......
例如,控制器已被视图替换.不是一个大问题...但我觉得有趣的是没有这些目录.它只是一个文件:views.py.
这个新的MVC结构如何工作?我是否将所有操作都写入此文件?当我有类似命名的动作(例如多个索引)时,这可能会变得相当烦人:/
你能指点我一些关于如何使用这个框架的好教程/文档的方向吗?
我希望开始开发一个相对简单的Web应用程序,它将从各种来源提取数据并对其进行规范化.用户还可以直接将数据输入站点.如果成功,我预计会达到规模.现在是否值得使用可扩展或分布式技术或者只是从LAMP堆栈开始?框架与否?任何想法,建议或评论都会有所帮助.
无视我对这个想法的模糊描述,一旦我走得更远,我很乐意分享.
pylons ×10
python ×8
database ×2
pyramid ×2
sqlalchemy ×2
bottle ×1
cassandra ×1
cherrypy ×1
cloud ×1
django ×1
eclipse ×1
frameworks ×1
geolocation ×1
mako ×1
nosql ×1
pydev ×1
sql ×1
tornado ×1
turbogears ×1