我已经尝试了所有存在的Python Web框架,我花了很长时间才意识到没有一个银弹框架,每个框架都有自己的优点和缺点.我开始使用Snakelets并且非常高兴能够在较低的水平上控制几乎所有东西而不用大惊小怪,但后来我发现了TurboGears并且我一直在使用它(1.x).像Catwalk和Web控制台这样的工具对我来说非常宝贵.
但是随着TurboGears 2的出现带来了WSGI的支持,在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的在"以正确的方式做到"之间徘徊,例如,学习WSGI,花费宝贵的时间来编写功能已经存在于Django和其他全栈框架中,而不是使用Django或一些为我做任何事情的高级框架.我能看到的后者的缺点非常明显:
所以,我想我的问题是,这是更好的选择,还是仅仅是一个意见问题,如果它以最小的麻烦实现我想要的东西(我希望身份验证和CRUD接口,我应该使用Django)我的数据库)?我尝试过Werkzeug,Glashammer和朋友,但AuthKit和Repoze让我害怕,以及设置基本身份验证所涉及的步骤数量.我查看了Pylons,但文档似乎缺乏,并且在引用诸如身份验证或CRUD界面之类的简单功能时,各种wiki页面和文档似乎相互矛盾,对于版本等具有不同的hacks.
感谢S. Lott指出我不够清楚.我的问题是:从长远来看,下列哪一项是值得的,但在短期内并不痛苦(例如某种中间地带,任何人?) - 学习WSGI,或坚持使用"电池包含"框架?如果是后者,我会赞赏一个关于我是否应该再给Django一次尝试,坚持使用TurboGears 1.x,或冒险进入其他框架的建议.
此外,我尝试过CherryPy,但似乎找不到足够好的CRUD应用程序,我可以立即使用它.
在表的SQLAlchemy类中是否有一种方法可以为该表定义/创建触发器和索引?
例如,如果我有一个基本的表...
class Customer(DeclarativeBase):
__tablename__ = 'customers'
customer_id = Column(Integer, primary_key=True,autoincrement=True)
customer_code = Column(Unicode(15),unique=True)
customer_name = Column(Unicode(100))
search_vector = Column(tsvector) ## *Not sure how do this yet either in sqlalchemy*.
Run Code Online (Sandbox Code Playgroud)
我现在想要创建一个触发器来更新"search_vector"
CREATE TRIGGER customers_search_vector_update BEFORE INSERT OR UPDATE
ON customers
FOR EACH ROW EXECUTE PROCEDURE
tsvector_update_trigger(search_vector,'pg_catalog.english',customer_code,customer_name);
Run Code Online (Sandbox Code Playgroud)
然后我想将该字段添加为索引...
create index customers_search_vector_indx ON customers USING gin(search_vector);
Run Code Online (Sandbox Code Playgroud)
现在我从我的应用程序执行任何类型的数据库重新生成后,我必须为tsvector列添加列,触发器定义,然后是psql的索引语句.不是世界末日,而是容易忘记一步.我全都是关于自动化的,所以如果我能在应用程序设置期间完成这一切,那么奖金!
我有一个项目,最终值得投入编程.
在阅读了很多东西,在这里和其他地方,我已经开始将Python作为我现在学习的东西,通过C#或java.最让我信服的是Paul Graham在编程语言和Lisp上的短途旅行,尽管Arc正处于试验阶段,这对我现在无法帮助我做这个网络应用程序.
至于网络应用程序,我已经检查了Django,Turbo Gears和Py2Web.尽管花了很多时间阅读,我仍然不知道应该使用哪一个.
1)Django当然拥有最好的在线形象,并且有一个很好的现场教程,他们肯定知道如何展示他们的东西.
2)Web2Py以无需安装的方式吸引我,并声称让Django看起来很复杂.但是当你在他们的网站上挖掘时,你很快就能找到多年来没有更新过的外部链接破坏的内容......那个网站上的鬼魂会让一个不熟悉项目的人担心它是否会变得扁平化.
3)Turbo Gears ......我猜它也是模块化的.写这篇文章的人喜欢它...我找不到任何可能使它比Django更特别的特定内容.
我还没有决定使用IDE,虽然我在这里阅读了Intellisense代码完成帖的所有答案.对于像我这样的新手来说,显示额外的代码片段也会很酷,但我想我应该首先选择我的网页框架,然后选择一个能够很好地适应它的编辑器.
因为可能没有任何框架能够在所有方面都做到最好,我将在我想要构建的应用程序上给出一些细节:
它将使用MySQL,它需要注册/登录,并且将对来自输入和SQL查询的数据进行大量简单的数学运算.我已经在Excel中完成了一个功能原型,所以我确切地知道我想要构建什么,我希望这将帮助我克服我的无知.我会成为一个小应用程序,没什么大不了的.
而且我不希望在构建它时看到任何HTML ;-)
PS:感谢运行Stackoverflow的人们,在恰当的时刻找到了这个地方!
在过去的几年里,我一直在使用Turbogears 1来进行小型网站的原型设计,并且它的使用时间有点长.有关在升级到Turbogears 2或切换到Django之间进行调用的任何建议吗?我很熟悉TG社区的熟悉程度,他们非常敏感,并且使用Django与更大的社区做了相当好的文档.我对内置的CMS功能和Google AppEngine支持非常感兴趣.
有什么建议?
谢谢
.M.
有人可以向我解释当前的python webframworks如何组合在一起吗?
我听说过的三个是CherryPy,TurboGears和Pylons.然而我很困惑,因为TurboGears似乎使用CherryPy作为'控制器'(虽然它本身不是CherryPy的框架吗?),而TurbGears 2将建立在Pylons之上(我认为它是一样?).
Django是我最喜欢的python web框架.我尝试过其他像pylons,web2py,nevow等.
但我从来没有热情地看过TurboGears.
现在TG2没有测试版,我可以尝试一下.我想知道与Django相比有哪些优点和缺点.
如果您希望聘请一位主要使用TurboGears/Python的Web开发人员 - 您应该问他们什么样的问题?
我正在寻找一个Python Web框架,它允许我快速构建一个具有自动AJAX支持的CRUD应用程序.
该框架应该能够生成一个可排序和可过滤的漂亮表,它可以通过AJAX工作,并且完全没有JS支持.
我看过TurboGears2,看起来很有希望,有没有其他框架可以为我做这个工作?
我正在使用python和git编写一个简单的Turbogears2项目,我只是为了好玩而构建的.在某个时刻我想将它部署到Heroku,所以我照常做pip freeze > requirements.txt,我得到这个错误:
Error when trying to get requirement for VCS system Command /usr/bin/git config
remote.origin.url failed with error code 1 in /home/ricardo/myprojs/hellotg22/example,
falling back to uneditable format
Run Code Online (Sandbox Code Playgroud)
并且requirements.txt它产生的,在所有依赖项之间列出,我发现这一行,whi看起来并不好看:
...
decorator==3.4.0
## !! Could not determine repository location
example==0.1dev
...
Run Code Online (Sandbox Code Playgroud)
有没有人知道问题是什么?
无论如何,我已设法获取requirements.txt文件,但我想知道该错误发生了什么.
我需要一种从Pyramid应用程序发送电子邮件的方法.我知道pyramid_mailer,但似乎有一个相当有限的消息类.我不明白是否可以使用模板从pyramid_mailer编写消息来生成电子邮件的正文.此外,我还没有看到任何关于是否支持富文本,或者它是否只是简单的纯文本.
以前,我使用Turbomail和Pylons框架.不幸的是,似乎没有任何适用于TurboMail for Pyramid的适配器.我知道TurboMail可以扩展到其他框架,但不知道我甚至会在哪里开始这样的任务.有没有人为金字塔写过适配器,或者能指出我需要做什么的正确方向?
turbogears ×10
python ×9
django ×4
turbogears2 ×3
pylons ×2
ajax ×1
cherrypy ×1
crud ×1
frameworks ×1
git ×1
heroku ×1
postgresql ×1
pyramid ×1
sqlalchemy ×1
web2py ×1
wsgi ×1