Django - 如何实现example.com/username url系统

Ric*_*rdd 1 django url username

我想在我的网站上实现一个简单友好的地址系统.

我在想的是当用户登录时,他的用户名将显示在地址栏中.

  • www.example.com/username 1(主页配置文件)
  • www.example.com/username 1/about /
  • www.example.com/username 1/gallery /

  • www.example.com/username 2(主页配置文件)
  • www.example.com/username 2/about /
  • www.example.com/username 2/gallery /

此外,如果有人输入地址www.example.com/username1,将显示user1的个人资料.

我已经使用Django-Allauth实现了一个注册/登录系统

MYSITE/urls.py

url(r'^accounts/', include('allauth.urls')),
Run Code Online (Sandbox Code Playgroud)

家用/ urls.py

url(r'^$', views.index),
Run Code Online (Sandbox Code Playgroud)

家用/ views.py

def index(request):

return render_to_response('home/index.html', context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

我尝试遵循一些示例,例如面向问题的用户配置文件网址方案,例如django中的example.com/username

但我还没有工作呢.我不明白该怎么做:(

请给一些建议.

cat*_*ran 5

添加以下网址作为以下内容的最后一项mySite/urls.py:

urlpatterns = patterns('',
    ...
    url(r'^(?P<username>\w+)/', include('userapp.urls')),
)
Run Code Online (Sandbox Code Playgroud)

然后username参数将传递给您的视图userapp:

userapp/urls.py:

from userapp import views

urlpatterns = patterns('',
    url(r'^$', views.profile, name='user_profile'),
    url(r'^about/$', views.about, name='user_about'),
    url(r'^gallery/$', views.gallery, name='user_gallery'),
)
Run Code Online (Sandbox Code Playgroud)

userapp/views.py:

def profile(request, username):
    user = get_object_or_404(User, username=username)
    return render(request, 'userapp/profile.html', {'profile_user': user})

def about(request, username):
    ...

def gallery(request, username):
    ...
Run Code Online (Sandbox Code Playgroud)