Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
11
respostas

Rota de Perfis não funciona

Sigo o tutorial. Então ta tudo ok. Minha raíz funciona bem. Mas eu to com um 404 no /perfis


from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    #return HttpResponse('Bem Vindo ao Django')
    return render(request, 'index.html')

def perfis(request):
    return render(request, 'perfil.html')
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',

    url(r'^$', 'perfis.views.index', name='index'),
    url(r'^perfis$', 'perfis.views.show', name='show'),

)

Views estão na pasta template. Ta realmente tudo certo. O que acontece?

11 respostas
Using the URLconf defined in connectedin.urls, Django tried these URL patterns, in this order:

^admin/
^$
The current URL, perfis, didn't match any of these.

Marcos,

Como estão seus arquivos: - urls.py - views.py - settings.py

Posta estes arquivos é como esta a estrutura do seu projeto:

urls:

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',

    url(r'^$', 'perfis.views.index', name='index'),
    url(r'^perfis$', 'perfis.views.perfis', name='perfis')

)

views


from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    #return HttpResponse('Bem Vindo ao Django')
    return render(request, 'index.html')

def perfis(request):
    return render(request, 'perfil.html')

settings:

"""
Django settings for connectedin project.

For more information on this file, see
https://docs.djangoproject.com/en/1.7/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.7/ref/settings/
"""

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.7/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'r0=2xdi0#t(yf^hw-#7f-)z8u9jf6y+292^r!tytzbf#a%2!(1'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

TEMPLATE_DEBUG = True

ALLOWED_HOSTS = []


# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'perfis'
)

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

ROOT_URLCONF = 'connectedin.urls'

WSGI_APPLICATION = 'connectedin.wsgi.application'


# Database
# https://docs.djangoproject.com/en/1.7/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

# Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.7/howto/static-files/

STATIC_URL = '/static/'

Marcos,

Vc não registrou corretamente a rota no arquivo: urls.py, o correto é:

# connectedin/perfis/urls.py 
from django.conf.urls import url
from perfis.views import index, exibir

urlpatterns = [
    url(r'^$', index, name='index'),
    url(r'^perfis$', exibir, name='exibir'),
]

quando eu seto do seu jeito, nem a home aparece. do meu jeito eu consigo a home. Mas não consigo a /perfis

Marcos,

Se vc estiver usando o windows, use o comando TREE dentro da pasta connectedin e post aqui?

Uso ubuntu

Marcos,

Melhor ainda eu tb uso o UBUNTU 17.04, vc criou a app perfil?

sim. Caso não, nem a home funcionaria, não é? Eu vou apagar e fazer as coisas novamente

Marcos,

E a melhor maneira de aprender, segue a risca o tutorial novamente e sempre baixe os arquivos da aula e compare com o que vc estiver fazendo.

Sugiro tb perder uns minutos é aprender a usar o virtualenv, para ter ambientes virtuais com a versão do python que vc quiser.

https://pythonhelp.wordpress.com/2012/10/17/virtualenv-ambientes-virtuais-para-desenvolvimento/

solução!

não tenho nem ideia do que eu mudei. Mas, sem nem olhar novamente os vídeos, eu refiz tudo e agora funcionou.