脚本
当我在web2py中创建一个新项目后,我会将一些脚本添加到我的主应用程序文件夹中:
web2py\applications\myapp\DebugWinpdb.bat:
C:\Python25\Scripts\winpdb.bat ..\..\web2py.py -i 127.0.0.1 -p8000 -mypassword
web2py\applications\myapp\DebugShell.bat:
C:\Python25\Scripts\winpdb.bat ..\..\web2py.py -S myapp -M
web2py\applications\myapp\Shell.bat:
python ..\..\web2py.py -S myapp -M
集成开发环境
正如其他人所说,无论你使用哪种IDE,你都需要做一些额外的工作才能获得针对web2py的自动补全/智能提示。
对我来说,NetBeans是在“只要你能弄清楚如何做到一切”(Eclipse/PyDev)和“只提供基础但很少有额外功能”(PyScripter)之间达成的一个不错的平衡点。
NetBeans设置(项目属性):
- Python类别
- Python平台:Python 2.x(默认为Jython)
- 运行类别
- 主模块:
web2py.py
- 应用程序参数:
-i 127.0.0.1 -p 8000 -a mypassword
NetBeans优点:
- 紧密的Mercurial集成
- 当您编辑源文件时,突出显示已添加、更改或删除的行
- 选择性回滚自上次提交以来所做的每个更改
- 我使用过的最漂亮的视觉差异查看器之一
- Python PEP8风格提示(完全可定制)
- 名称“foo”在你的代码风格中不是有效的类名(CapitalizedWords)
- 名称“Bar”在你的代码风格中不是有效的函数名(lowercase_with_underscores)
- 自动格式化快捷键(正确调整操作符周围的间距等)
- 在源文件中导航
- 语义上索引当前源文件
- 按类型按字母顺序组织(类、方法、属性等)
- 即使是庞大的样式表也可以管理
NetBeans缺点:
- 集成调试器无法与web2py配合使用(这真的很让人痛苦)
- 启动时间长(但对我来说一旦启动就足够快了)
版本控制
我使用并强烈推荐使用Mercurial进行源代码控制。 正如前面提到的,NetBeans对Mercurial有很好的支持,但有些事情我更愿意在TortoiseHg中完成。
TortoiseHg优点:
- Shell覆盖图标
- 存储库资源管理器
- 使用分支/合并的图形显示查看资料库历史记录
- 一站式获得入站、出站、推送、拉取、更新等按钮,并带有提交工具的按钮
- 提交工具
- Hunk选择:从文件内挑选更具集中性的变更以进行提交
- 添加、删除、差异、恢复、移动、删除、遗忘
TortoiseHg缺点::
- 没有直接进入命令行的简单方式
- 经常存在防止在提交时删除文件的错误(无限期等待锁定被释放;从命令行运行
hg addremove
是一个可靠的解决方法)
发布
我使用WinSCP(用于浏览)、PuTTY(用于终端命令)和TortoiseHg(用于推送/拉取我的资料库)来处理我在Webfaction上的共享主机账户。
我做的第一件事是设置公钥/私钥加密。 如果您在Windows和Linux之间设置此项时有问题,请尝试André Molnar的这些说明。 简而言之,您需要使用Linux上的ssh-keygen生成私钥,使用WinSCP将其复制到Windows机器上,然后将其转换为WinSCP和PuTTY可用的格式。
然后在全局mercurial.ini文件中添加以下行:
[ui]
ssh = "C:\Program Files\TortoiseHg\TortoisePlink.exe" -ssh -2 -i "c:\path\to\your\privatekey.ppk"
即使您必须连接多个服务器,您只需要将公钥复制到每个不同的服务器即可。您还需要让WinSCP和PuTTY知道您的私钥位于何处,但这些都相当容易弄清楚。