python - 将应用程序添加到托管的 Django 项目

标签 python django dreamhost

我已经在网站上倾注了一段时间,但没有找到适合我的解决方案。长期倾听者,第一次来访者。

我有一个现有的 Django 应用程序(基于 Django 文档示例站点,包括“投票”)。我已经将其移至此并通过 wsgi 在 Web 服务器上启动并运行它。

我已经创建了一个包含我自己内容的新本地项目。我这样做的方式类似于示例站点,其中的应用程序与项目的主应用程序处于同一级别。

我现在正尝试将我创建的应用程序添加到示例网站。当投票应用程序连接到“我的网站”时,我正在尝试镜像其组织和管道。

我的文件结构如下:

  • passenger_wsgi.py
  • 我的网站
    • 我的网站(主应用程序)
      • __init__.py
      • 设置.py
      • urls.py
      • wsgi.py
    • 投票(示例站点应用程序)
      • __init__.py
      • urls.py
      • views.py
      • 模型.py
    • 核心(我正在添加的应用程序)
      • __init__.py
      • urls.py
      • views.py
      • 模型.py
    • 管理.py

设置的添加如下所示:

INSTALLED_APPS = {
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
    'core'
}

我的网站/urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin
urlpatterns = patterns('',
    url(r'^$', 'polls.views.home', name='home2'),
    url(r'^polls/', include('polls.urls', namespace="polls")),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^core/', include('core.urls', namespace="core")),
)

核心/urls.py:

from django.conf.urls import patterns, include, url
from django.contrib import admin
#from core import views
urlpatterns = patterns('',
    url(r'^', 'core.views.home', name='home'),
)

当我加载“manage.py shell”时,我可以从核心导入 url、模型和 View 。我什至可以使用 django.test.Client 来“获取”“/core/”,并且我得到了包含预期内容的 200 响应。但是,当我尝试在浏览器中导航到该站点(任何 url)时,我得到:“没有名为 urls 的模块时出现 ImportError”

如果我删除包含 core.urls 的调用,其他 url 将按预期工作。

我已经尝试过对两个 urls.py 文件进行一些不同的调整,包括直接从顶部 urls.py 调用 core.views 而忽略 core.urls,这会导致“没有名为 View 的模块”。

如有任何建议,我们将不胜感激。我也欢迎就如何编写更好的问题提出建议。

Stack Trace

编辑:还想提一下,我尝试删除所有已编译的 python 文件以消除未更新逻辑的可能性。

编辑 2:它在 virtualenv 中运行。我在 Dreamhost 服务器上安装了更新版本的 Python。

passenger_wsgi.py:

import sys, os
cwd = os.getcwd()
sys.path.append(cwd)
sys.path.append(cwd + '/mysite')

if sys.version < "2.7.9":
       os.execl(cwd + "/env/bin/python", "python2.7", *sys.argv)

sys.path.insert(0, cwd + '/env/bin')
sys.path.insert(0, cwd + '/env/lib/python2.7')
sys.path.insert(0, cwd + '/env/lib/python2.7/site-packages/django')
sys.path.insert(0, cwd + '/env/lib/python2.7/site-packages')

os.environ['DJANGO_SETTINGS_MODULE'] = "mysite.settings"
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我的网站/我的网站/wsgi.py:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

编辑 3:这是 core/views.py

from django.shortcuts import render
from django.core.mail import send_mail
from django.http import HttpResponseRedirect

# Create your views here.
def home(request):
    return render(request, 'core/home.html')

编辑 4:来自浏览器的示例 GET header 。导致 500 导入错误;没有名为 urls 的模块

GET /core/ HTTP/1.1
Host: #redacted
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: csrftoken=36HpckIqzOMbw29BOrQWcnaIJbMn6pwo; sessionid=z9c58vb6610kevo4yytolcbhlaqsoqnm

编辑 5:由于响应主要表明事情看起来是正确的,所以我扩大了问题的范围以包括 Dreamhost 并向他们提交了支持票.如果有任何有用的结果,我会在这里报告。

最佳答案

urlpatterns 在 core/urls.py 中看起来是错误的 而不是做

urlpatterns = patterns('',
url(r'^', views.home, name='home'),)

尝试

   urlpatterns = [url(r'^','core.views.home',name='home'),]

附言views.name 被引用

关于python - 将应用程序添加到托管的 Django 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28466141/

相关文章:

python - 在Python中运行sql server查询时出现错误

php - 在 PHP 中处理发往多个收件人的传入邮件

amazon-ec2 - 如何将我的 DreamHost DNS 注册网站指向我的 EC2 实例?

python - Pymodbus RTU连接问题

python - pyshp : PolyLineZ drawing draws lines between my lines

python - 如何编写正则表达式来捕获特定的数字格式并排除其余的?

java - 将 JSON 字符串转换为 Java/Python (Jython) 对象?

python - 谷歌应用引擎: How to Truncate string after a given number of chars

javascript - 带有 webpack 和 Reactjs 的 django runserver 项目结构

ruby-on-rails - 在 Passenger Rails 应用程序中包含 ~/opt/lib 库