Django - 如何实现example.com/username url系统 [英] Django - how to implement an example.com/username url system
问题描述
我在想什么是用户登录的时候,他的用户名将是显示在地址栏中。
- www.example.com/username 1 (用于主页个人资料)
- www.example.com/username 1 / about /
- www.example。 com / username 1 / gallery /
p>
- 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')),
home / urls.py
url(r'^ $',views.index),
home / views.py
pre $ def index(request)
return render_to_response('home / index.html',context_instance = RequestContext(request))
我尝试了一些例子,例如用户配置文件url方案的问题,如django中的example.com/username
但我没有这个工作。我不明白该做什么:(
请给出一些建议。
添加以下网址作为最后项目 mySite / urls.py
:
urlpatterns = patterns('',
...
url(r'^(?P< username> \w +)/', include('userapp.urls')),
)
然后$ code> username 参数将被传递给您的 userapp
的视图:
userapp / urls.py
:
从userapp导入视图
urlpatterns = patterns('',
url(r'^ $',views.profile,name ='user_profile'),
url(r'^ about / $' about,name ='user_about'),
url(r'^ gallery / $',views.gallery,name ='user_gallery'),
)
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图库(请求,用户名):
...
I am trying to implement on my website a simple and friendly address system.
What i'm thinking about is when the user logged in, his username will be displayed in the address bar.
- www.example.com/username1 (for home page profile)
- www.example.com/username1/about/
- www.example.com/username1/gallery/
- www.example.com/username2 (for home page profile)
- www.example.com/username2/about/
- www.example.com/username2/gallery/
And additionally if anyone enter the address www.example.com/username1, will be shown the profile of user1.
I already implemented a register/Login system using Django-Allauth
mySite/urls.py
url(r'^accounts/', include('allauth.urls')),
home/urls.py
url(r'^$', views.index),
home/views.py
def index(request):
return render_to_response('home/index.html', context_instance=RequestContext(request))
I tried to follow some examples like Facing problem with user profile url scheme like example.com/username in django
But i dont have this thing working yet. I dont understand what to do :(
Please, give some advise.
Add the following url as the last item of the mySite/urls.py
:
urlpatterns = patterns('',
...
url(r'^(?P<username>\w+)/', include('userapp.urls')),
)
Then the username
parameter will be passed to the views of your 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'),
)
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):
...
这篇关于Django - 如何实现example.com/username url系统的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!