使用 Django 和 a2 服务器将视图链接到网页
Posted
技术标签:
【中文标题】使用 Django 和 a2 服务器将视图链接到网页【英文标题】:Linking views to webpage with Django and a2 servers 【发布时间】:2016-01-17 06:38:58 【问题描述】:我希望有人可以帮助我解决我遇到的这个问题,因为它看起来很简单,但在过去的几个小时里我一直在努力解决这个问题,没有得到任何安慰。好的,所以我按照 A2 托管指南 here 设置了 Django。
我只是无法与我的 views.py 文件通信。
让我给你看一些文件,因为我希望它只是一些明显的错误。
public_html/mysite/mysite/setup.py:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'nfl'
)
DATABASES =
'default':
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '*******',
'USER': '*******',
'PASSWORD': '***',
'HOST': '',
'PORT': '5432',
STATIC_URL = '/static/'
TEMPLATE_DIRS = (
"nfl/templates",
)
public_html/mysite/mysite/urls.py:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^home/', 'nfl.views.home', name='home'),
]
public_html/mysite/nfl/views.py:
from django.shortcuts import render_to_response
import nfldb
import requests
# Create your views here.
def home(request):
db = nfldb.connect()
q = nfldb.Query(db)
year = request.GET['year']
if year is none:
year = 2014
q.game(season_year=year, season_type='Regular')
qb = []
for pp in q.sort('passing_yds').limit(10).as_aggregate():
qb.append(pp)
return render_to_response('index.html', 'qb' : qb)
public_html/mysite/nfl/templates/index.html:
just a helloworld html file to test
.htaccess:
AddHandler fcgid-script .fcgi
RewriteEngine on
# Set up static content redirect:
RewriteRule static/(.+)$ mysite/public/static/$1
# The following two lines are for FastCGI:
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^(.*)$ application.fcgi/$1 [QSA,L]
当我进入我的域时,我只是在您的第一个 Django 应用页面上得到基本的恭喜。
那么我在这里错过了什么?我从本地机器复制了大部分内容,因为它在本地主机上使用 Django runserver
工作,但现在我似乎无法链接我的视图。
如果需要任何其他信息或者是否有更好的网站可以访问,请告诉我。
我的设置:
Python:2.7 Django:1.85【问题讨论】:
@@panthor314 “当我访问我的域时”是指 domain.com 吗?因为在您的 URLs.py 中,为了访问您的“主页”视图,您必须转到“^home/”,即 domain.com/home 哇,这似乎有效(谢谢!!!)......现在它说没有名为 requests 的模块,即使它已安装...... 当它引发“没有名为请求的模块”错误时,它是否指向您的 views.py 中的“导入请求”行?如果是,似乎 requests 不是内置模块。在此处查看答案:***.com/questions/17309288/… 您是否在生产(当前)服务器上使用“pip install requests”安装它?如果没有,您具体是如何安装的? @user2719875 是的,它指向我的views.py,但是是的,我在我的服务器上安装了它,不知道为什么它无法识别 你能给我“pip freeze”命令的输出吗? 【参考方案1】:如果您访问 domain.com,则会出现“恭喜您的第一个 django 应用程序”页面,因为在您的 URLs.py 中,您确实为
url(r'^')
为了不显示此页面,而是显示您的 index.html 页面,您应该这样做
urlpatterns = [
url(r'^', 'nfl.views.home', name='home'),
]
【讨论】:
以上是关于使用 Django 和 a2 服务器将视图链接到网页的主要内容,如果未能解决你的问题,请参考以下文章
如何将表单视图作为 django 中的上下文传递给另一个视图?
如何在 Django 通用列表视图类中使用 slugfield 创建链接?