Tei*_*ion 1 python django macos
我刚刚完成了非常非常好的django教程,它一切都顺其自然.本教程的第一部分之一就是说它不会在生产中使用他们的示例服务器,我在教程之后的第一个行为是尝试在apache上运行我的应用程序.
我正在运行OSX 10.5并且有标准的apache(它拒绝运行python)和MAMP(它不情愿地允许它在cgi-bin中).问题是我不知道要调用哪个脚本,在教程中它总是localhost:8000/polls但我不知道这是如何映射到特定文件的.
我是否遗漏了一些关于如何处理.htaccess文件的明显明显的内容,或者教程没有真正解释如何在其他地方使用它?
你可能不会发现.htaccess通过Apache配置Django 会有很多乐趣(虽然我承认如果你足够坚定,你可能会这样做......但是对于生产我怀疑它会比必要的更复杂).我在OS X中开发和运行Django,它可以非常无缝地工作.
秘诀是你必须配置httpd.conf通过三个选项之一传递请求到Django :( mod_wsgi最现代的方法),mod_python(第二好,但在OS X的Python 2.5上工作正常),fastcgi(好吧......如果你必须匹配你的生产环境).
Django的部署文档对所有三个选项都有很好的建议和指导.
如果您使用默认的OS X apache安装,请/etc/apache2/httpd.conf使用上面Django文档中的指令进行编辑.我不能代表MAMP,但是如果你从源代码构建Apache(这在OS XI上很容易就会想到为什么有人对MAMP感到烦恼......我的不安全感正在显示),编辑/usr/local/apache2/conf/httpd.conf.
小智 5
除非您计划使用OS X进行生产,否则您可能不想打扰.如果必须这样做,请直接转到mod_wsgi.不要打扰mod_python或更旧的解决方案.我在Apache上做了mod_python,虽然它现在运行得很好,但它花了不少时间来设置.
另外,只是为了澄清一些基于你所说的内容:你不会在url路径(比如/ polls)和被调用的脚本之间找到一个映射.Django并不像那样工作.使用Django,您的应用程序将加载到内存中等待请求.一旦请求进入,它将通过您在urls.py中创建的url映射进行调度.归结为代码中的某个函数调用.
这就是为什么对于像Apache这样的网络服务器你需要一个像mod_wsgi这样的模块,它可以让你的应用程序在内存中占有一席之地.与CGI之类的东西相比较,其中web服务器在url和文件系统之间物理映射的位置按需执行特定脚本.
我希望这有用,而不是告诉你一些你已经知道的事情.:)
| 归档时间: |
|
| 查看次数: |
1571 次 |
| 最近记录: |