Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Social Auth Django模板示例_Python_Django_Django Templates_Python Social Auth - Fatal编程技术网

Python Social Auth Django模板示例

Python Social Auth Django模板示例,python,django,django-templates,python-social-auth,Python,Django,Django Templates,Python Social Auth,有人在模板中有使用with Django的开放示例吗 我查看了他们的Github repo,在django exmaple中,没有任何关于如何在模板中处理它的内容(例如登录、注销等)。在python social auth中有一个示例。您只需安装python social auth,配置数据库和facebook应用程序或其他社交应用程序,将密码和密钥放入settings.py文件并运行应用程序。有一个带有模板标签的模板,还有更多。单击此处:并查看示例文件夹。我发现本教程非常有用:python s

有人在模板中有使用with Django的开放示例吗


我查看了他们的Github repo,在django exmaple中,没有任何关于如何在模板中处理它的内容(例如登录、注销等)。

在python social auth中有一个示例。您只需安装python social auth,配置数据库和facebook应用程序或其他社交应用程序,将密码和密钥放入settings.py文件并运行应用程序。有一个带有模板标签的模板,还有更多。单击此处:并查看示例文件夹。

我发现本教程非常有用:python social auth中的示例应用程序相对简洁且难以理解。

假设您在上遵循了python social auth配置指南,并且希望使用facebook登录。 settings.py中的后端设置应为:

AUTHENTICATION_BACKENDS = (
'social.backends.facebook.FacebookOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url('', include('social.apps.django_app.urls', namespace='social')),
    url(r'^admin/', include(admin.site.urls)),
)
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url('', include('social.apps.django_app.urls', namespace='social')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'login_app.views.home', name='home'),
    url(r'^members/', 'login_app.views.members', name='members'),
    url(r'^logout/$', 'login_app.views.logout', name='logout'),
)
您应该注册为facebook开发者并创建一个应用程序,然后在settings.py文件中填写其他数据:

SOCIAL_AUTH_FACEBOOK_KEY = 'xxxxxxxxxxxxxx'
SOCIAL_AUTH_FACEBOOK_SECRET = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
SOCIAL_AUTH_FACEBOOK_SCOPE = ['email']
假设登录后您希望用户重定向到“成员”页面,因此您将此设置添加到settings.py:

LOGIN_REDIRECT_URL = '/members'
假设您在django项目中创建了login_应用程序,并使用home.html模板创建了home视图,还使用members.html模板创建了members视图(您应该让模板目录正常工作)

根据配置指南,我们的URL.py应该是:

AUTHENTICATION_BACKENDS = (
'social.backends.facebook.FacebookOAuth2',
'django.contrib.auth.backends.ModelBackend',
)
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url('', include('social.apps.django_app.urls', namespace='social')),
    url(r'^admin/', include(admin.site.urls)),
)
from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    url('', include('social.apps.django_app.urls', namespace='social')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^$', 'login_app.views.home', name='home'),
    url(r'^members/', 'login_app.views.members', name='members'),
    url(r'^logout/$', 'login_app.views.logout', name='logout'),
)
如果我们尝试使用DEBUG=True设置的bla-bla-url,我们会得到一个错误:

Using the URLconf defined in your_project.urls, Django tried these URL patterns, in this order:
    ^login/(?P<backend>[^/]+)/$ [name='begin']
    ^complete/(?P<backend>[^/]+)/$ [name='complete']
    ^disconnect/(?P<backend>[^/]+)/$ [name='disconnect']
    ^disconnect/(?P<backend>[^/]+)/(?P<association_id>[^/]+)/$ [name='disconnect_individual']
    ^admin/
The current URL, bla-bla-bla/, didn't match any of these.
在我们的login_应用程序目录下,我们应该有文件(不要注意*.pyc文件和迁移文件夹,因为我使用的是django 1.7b4版本):

我们的views.py应该如下所示:

from django.shortcuts import render, redirect
from django.contrib.auth import logout as auth_logout

def home(request):
    context = {}
    template = 'home.html'
    return render(request, template, context)

def members(request):
    context = {}
    template = 'members.html'
    return render(request, template, context)

def logout(request):
    auth_logout(request)
    return redirect('/')
其他文件(包括models.py)我们可以不添加任何内容就离开

为了使用facebook登录,我们应该将您的用户重定向到“login/facebook”。因此,您可以在home.html模板的适当位置添加此链接或按钮:

<a href="login/facebook">Login with facebook</a>
<p>User's name and surname: {{ user.first_name }} {{ user.last_name}}</p>
<p>Username: {{ user.username }}</p>
<p>E-mail: {{ user.email }}</p>
<a href="/logout">Logout</a>
因此,我们可以在members.html模板中添加一个链接:

<a href="login/facebook">Login with facebook</a>
<p>User's name and surname: {{ user.first_name }} {{ user.last_name}}</p>
<p>Username: {{ user.username }}</p>
<p>E-mail: {{ user.email }}</p>
<a href="/logout">Logout</a>

这将足以注销用户并重定向到初始主页


这是一个非常简单的示例,可以更好地理解如何使用Python Social Auth登录和注销。

喜欢这里的模板吗?@omab您能告诉我在哪里可以找到如何使用模板标记吗?对于何时使用“社交:开始”和何时使用“社交:完成”,似乎没有太多把握。搜索repo时,似乎找不到模板标签列表。除了少数情况(如使用JS SDK时),不应使用
social:complete
social:begin
是启动身份验证过程的URL(登录或注册,无所谓)。有两个模板上下文处理器,可以轻松创建已关联和未关联后端的列表,它们的文档位于omab的一个已被python social auth取代,后者为django提供了一个示例,但它都是ajax,运行速度为440行
https://github.com/omab/python-social-auth/blob/master/examples/django_example/example/templates/home.html
?!?!在examples文件夹中还有另一个被神秘地称为
django\u me\u example
的示例。“我”是什么意思?你能指导我把twitter的密钥和秘密放在设置文件中吗?如果你的答案包含一个链接,那么这个链接会有用得多,如果网站在将来某个时候不活动,那么这个链接就没用了。请考虑从网站中添加一些内容,让读者从中受益。