我是 Django 的新手。我正在我的应用程序中实现 Facebook 身份验证。我在终端输出中遇到的错误类似于;
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 324, in execute
django.setup()
File "/usr/local/lib/python2.7/dist-packages/django/__init__.py", line 18, in setup
apps.populate(settings.INSTALLED_APPS)
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File "/usr/local/lib/python2.7/dist-packages/django/apps/config.py", line 202, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
File "/usr/local/lib/python2.7/dist-packages/social_auth/models.py", line 4, in <module>
from django.utils.importlib import import_module
ImportError: No module named importlib
我做错了什么?我新安装的 django-python-social 安装正确吗?
这好像是Django 社交身份验证已经有issues https://github.com/omab/django-social-auth/issues/833使用 django 1.8,所以我不知道 django 1.9 是否有问题。我会推荐使用Django-allauth https://github.com/pennersr/django-allauth因为它是最使用/额定包装 https://www.djangopackages.com/grids/g/social/对于社交网络,配置很容易:
pip install django-allauth
-
设置.py config
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, "templates")],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
....
"django.core.context_processors.request",
# allauth specific context processors
"allauth.account.context_processors.account",
"allauth.socialaccount.context_processors.socialaccount",
],
},
},]
AUTHENTICATION_BACKENDS = (
# Default backend
"django.contrib.auth.backends.ModelBackend",
# `allauth` specific authentication methods, such as login by e-mail
"allauth.account.auth_backends.AuthenticationBackend",
)
INSTALLED_APPS += (
# The Django sites framework is required
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount',
# Login Facebook provider
'allauth.socialaccount.providers.facebook',
)
SITE_ID = 1
-
in urls.py add:
urlpatterns = patterns('',
...
#Auth URLS
url(r'^accounts/', include('allauth.urls')),
)
最后应用数据库迁移
运行服务器并转到管理界面http://127.0.0.1:8000/admin/sites/site http://127.0.0.1:8000/admin/sites/site并创建一个站点
本地主机 127.0.0.1:8000 或您的网站域
生产。它的 id 应该等于配置的 SITE_ID
之前在设置中。
配置您的 Facebook 应用程序以获取密钥,然后为 Facebook 创建社交应用程序:http://127.0.0.1:8000/admin/socialaccount/socialapp http://127.0.0.1:8000/admin/socialaccount/socialapp
--> 你可能还会发现这个tutoriel http://www.techstricks.com/django-allauth-tutorial-step-by-step/ useful
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)