如何在django中组织和访问URL和TEMPLATES

时间:2015-03-27 13:58:07

标签: python django django-templates django-urls

我刚开始学习Django,我坚持最快,最好的学习方式是通过练习。我正在构建我的第一个网络应用程序,我非常感谢您对以下内容的帮助:

我正努力让前端出现。但我很难理解URLS的工作方式。

我有以下目录:

/myApp
    /myApp
        /public
        /templates
            /account
                login.html
            base.html
        settings.py
        urls.py
        ...
    /account
        urls.py
        views.py

我的myApp(主应用)上有这个' urls.py'文件

urlpatterns = patterns('',
    ...
    url(r'^$', include(account.urls), name='account'),
)

在我的帐户urls.py文件中,我已经有了ff:

...
urlpatterns = patterns(
    'account.views',
    url(r'^$', 'login_user', name='login'),
)

我已经在帐户views.py文件中定义了以下内容:

def login_user(request):
    return render(request, 'account/login.html')

所以我想这个请求应该呈现我的login.html文件。

但是我得到了错误,

NameError at /
name 'account' is not defined

因此,我发现我的settings.py文件一定有问题,对吧?

所以这就是它是否有用(只是重要的东西):

...
BASE_DIR = os.path.join(os.path.dirname(__file__), '.')
...
ROOT_URLCONF = 'myApp.urls'
WSGI_APPLICATION = 'myApp.wsgi.application'
TEMPLATE_DIRS = [
    os.path.join(BASE_DIR,'templates'),
] 
STATIC_ROOT = os.path.join(BASE_DIR,'static')
STATIC_URL = "/static/"
STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'public'),
]

现在,我真的需要至少让前端工作。我希望我给你的细节让你知道我现在如何组织我的档案。

附加说明:我想为整个应用创建一个模板目录。正如您在结构中看到的那样,模板文件夹位于主应用程序中。如何在设置中配置它以使应用程序使用主模板文件夹?

1 个答案:

答案 0 :(得分:1)

您应该将account.urls放在引号中。同时从正则表达式中删除$符号:

url(r'^', include('account.urls')),

account/urls.py文件中,您应该将基本模块名称从oauth更改为acount(您的视图为account.views.login_user,而不是oauth.views.login_user) :

urlpatterns = patterns('account.views',
    ....
)