我以前从未部署过Django站点.我目前正打算在我的豪华GoPardy账户中设置它.有没有人有关于如何在GoPardy上安装Python和Django的文档?

推荐答案

作为将来的参考,我想你已经向前看了.

可以在GoDaddy主机上使用Django,按照他们的建议使用VirtualEnv.Python2.7是本机安装的,运行良好,尽管它不是要运行的默认版本.

  • 在站点上启用SSH访问.
  • 使用托管面板设置初始MySQL数据库.它不需要任何条目,只需确保它存在并记下连接信息即可.
  • 登录SSH,下载VirtualEnv.py.您可以获得整个tarball,但您只需要单个文件.
  • 运行‘/usr/bin/python2.7viralenv.py--system-site-Packages your_new_env’
  • 运行‘source your_new_env/bin/activate’
  • 运行‘pip install Django’
  • 现在,您可以直接阅读django教程,当然不使用runserver除外(因为您已经有一个Web服务器在运行)

这对我的豪华账号很有效,不过我仍然建议任何明确想要使用Django的人寻找替代主机.谷歌爸爸不是很友好,我不确定一切是否会继续下go .


EDIT

我意识到在没有常规mod_*选项的情况下,如何让django在apache内部正常运行,可能还有一些念力.这是我的做法:

  • 在html目录 struct 之外的某个位置创建Django项目.例如,在~/code中运行django-admin以创建~/code/your site
  • 按照Django教程中描述的正常项目和数据库设置进行操作.
  • 从您的虚拟python环境中,运行‘pip install flup’.
  • 在~/code(Note the python path!)内创建以下脚本‘django_cgi.py’:

    #!~/your_new_env/bin/python
    import sys, os
    
    # Add a custom Python path for your project
    sys.path.insert(0, "/must/be/full/path/to/code/yoursite")
    
    # Set the DJANGO_SETTINGS_MODULE environment variable.
    # This should match the name for the project you added to the path above
    os.environ['DJANGO_SETTINGS_MODULE'] = 'yoursite.settings'
    
    from django.core.servers.fastcgi import runfastcgi
    runfastcgi(method="threaded", daemonize="false")
    
  • 在~/html内,使用以下变量创建或编辑.htaccess文件:

    RewriteEngine On
    RewriteCond %{REQUEST_URI} !=/mysite.cgi
    RewriteRule ^(.*)$ /mysite.cgi [QSA,L,PT]
    
  • 最后,创建~/html/mysite.cgi,如下所示:

    #!/bin/sh
    ~/your_new_env/bin/python ~/code/django_cgi.py 2>&1
    
  • 确保所有内容都进行了适当的更改(755)

这过于简单但功能强大,应该会导致对任何页面或文件的每个请求都传递给Django.

这个变通的原因是,对于我们不能使用的旧版本的Python,GoPardy只提供本地CGI支持,所以我们必须使用我们的虚拟环境.虽然我们不能直接在CGI脚本中使用它,但幸运的是,我们可以运行shell脚本并手动调用它.mod_rewrite规则只是确保所有流量都通过Django.

References
Django with FastCGI
Start of Django Tutorials
VirtualEnv

Django相关问答推荐

使用django直接计算geohash而不创建模型

Djnago admin中 Select 字段的自定义查询

在模板中自动添加变量

如何删除Docker上的django应用程序?

来自日历的 Django 动态 url

使用 Crispy Forms 时 Django 返回 'TemplateDoesNotExist'

Django Inline Tabular admin:删除一个不工作的对象

AttributeError:模块rest_framework.serializers在 Swagger 中的 Django 中没有属性NullBooleanField

Django 应用程序似乎无法识别相关名称?

Django Calendar日历小部件?

如何测试某个日志(log)消息是否记录在 Django 测试用例中?

是否可以将 FastAPI 与 Django 一起使用?

Django:使用render或render_to_response时添加响应头

在 django 模板中访问元组

Django 删除未使用的媒体文件

清理提交的表单数据中的 HTML

Django 有 SmallIntegerField 的原因是什么?

使用 Django 部署 Google Analytics

登录后django重定向不起作用next不发布?

显式 cursor.close() 的必要性