首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python后端设计模式

Python后端设计模式
EN

Stack Overflow用户
提问于 2011-04-15 06:55:01
回答 2查看 4K关注 0票数 0

我现在正在为一个实时和历史跟踪web服务的大型后端系统工作。

我在Python方面经验丰富,打算将其与sqlalchemy (MySQL)一起使用来开发后端。

我没有任何开发健壮和可持续的后端系统的主要经验,我想知道你们是否可以给我指出一些关于后端设计模式的文档/书籍?基本上,我需要通过实时查询不同的服务(通过HTML / SOAP / JSON)将数据提供给数据库,并保存这些数据的历史记录。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2011-04-15 07:06:43

你能更准确地定义“后端”吗?通常,在web dev中,我遵循MVC式的结构,其中我的“前端”、html/css/js和处理显示的代码与我的“后端”模型(业务对象和数据持久化;即数据库)是松散耦合的。

我喜欢Django的模型/视图/模板方法:

http://docs.djangoproject.com/en/dev/faq/general/#django-appears-to-be-a-mvc-framework-but-you-call-the-controller-the-view-and-the-view-the-template-how-come-you-don-t-use-the-standard-names

但是,你还没有真正定义你所说的“后端”是什么意思,所以很难给出关于设计模式的建议。你说你对Python很有经验,你以前开发过数据库驱动的web应用程序吗?

更新

基于你的评论,我不能提供太多的帮助,因为我没有太多的经验来做这样的“后端”。然而,考虑到你是如何从web上获取资源的,你的延迟/吞吐量将会非常高。因此,为了提高整体效率,你会希望有一些东西可以运行多个线程或进程,并具有相当高的并发性。我建议你在这个帖子上查看答案(并搜索类似的答案):

Concurrent downloads - Python

具体地说,我发现递归web服务器的示例和它后面的示例可能是您解决方案的一个很好的开始:

http://eventlet.net/doc/examples.html#recursive-web-crawler

至于采用这个想法,然后将其转变为一个健壮/连续的过程,这将在很大程度上取决于你的平台和你做错误处理的好坏。基本上:

  • 在循环中运行它,并确保您处理了任何可能抛出的错误
  • 让某种监视工作进程的进程在它挂起或死掉时终止/重新启动它
  • 确保您有一个监视解决方案,在它停止工作(nagios等)时通知您

保持事物“健壮”的最好方法之一是使它们尽可能简单(而不是简单化)。如果你所做的只是从网络上获取信息,以某种方式对其进行解析,然后将该信息存储在数据库中,那么请尽量保持该过程的简单性。不要为了使它更健壮而增加不必要的复杂性。如果你最终得到了一个200行的脚本来做你想做的事情,那就太棒了!

票数 1
EN

Stack Overflow用户

发布于 2011-04-15 11:09:10

使用Apache,Django和Piston。

使用REST作为协议。

编写尽可能少的代码。

Django模型、表单和管理界面。

活塞式包装为您的资源。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5670639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档