2014年1月17日 星期五

使用django-social-auth做 goole auth2.0 登入

官方的 Demo:http://social.matiasaguirre.net/

測試環境:
python 2.6
Django 1.4.9

基本上只要是Django >=1.2.5 python-social-auth >= 0.1.12 即可使用

下載:git clone https://github.com/omab/django-social-auth.git

先instll 必要的package
$ sudo pip insall south

$ cd django-social-auth
$ sudo python setup.py install

$ cd  example
$ python manage.py syncdb
$ python manage.py migrate

$ vi  example/settings.py

 #在最下面的部分加入

SOCIAL_AUTH_GOOGLE_OAUTH2_KEY = 'YOUR CLIENT SECRET'
SOCIAL_AUTH_GOOGLE_OAUTH2_SECRET  = 'YOUR CLIENT SECRET'

$ python manage.py runserver 0.0.0.0:8080

再來打開你的browser 輸入

localhost:8080

就可以正常運作並利用 google oauth2.0登入了

-----------------------------------------------------------------------------------------------
在 python 3.3    Django 1.5.5下
需要將修改一些東西

# vim example/urls.py

將以下這行註解
#from django.conf.urls.defaults import patterns, url, include

加入以下這行
from django.conf.urls import patterns, url, include

即可讓網站正常運作,但是記得,要改用python3.3 及 pip3.3 來運作。

小編也有試著將Django 升級到目前最新的版本 1.6.1,

其實都可以正常運作,但在login的時候會不太正常。

如何不清楚 google oauth 2.0 的client_id  與 client_secret 如何申請麻煩參考以下google的文件:

https://developers.google.com/adsense/management/tutorials/oauth-generic?hl=zh-tw



2014年1月10日 星期五

python 3.3 + Django 1.6.1 使用mysql 遇到 Error loading MySQLdb module: No module named 'MySQLdb'

在 python 3.3 底下執行Django 1.6.1 ,若搭配 Mysql 使用時,可能會遇到以下問題

Error loading MySQLdb module: No module named 'MySQLdb'

該問題是因為少install 了MySQLdb,但是在python3 並不兼容MySQLdb,所以需要用相容python3 的相關套件。

所以請安裝以下套件
# sudo pip3.3 install  PyMySQL

安裝好了執行了Django會發現,還是會出現同樣的error,此時問題又出在哪了?

其實在要你startproject中的 __init__.py 檔中加入以下資料

import pymysql
pymysql.install_as_MySQLdb()

將剛剛安裝的library import 即可讓你的django 正常運作了。



在python 3.3 下安裝Django 1.6.1

在 python3.3 因為不是系統預設的python 所以安裝django 需要使用 pip3的協助。


1. install setuptools  (因為pip3 需要用到setuptools)

# wget https://bitbucket.org/pypa/setuptools/get/default.tar.gz#egg=setuptools-dev -O setuptools.tar.gz

# tar -zxvf setuptools.tar.gz
# cd pypa*
# sudo python3.3 setup.py install
# cd ..


2. install pip3  (phython3 的套件管理程式)

#  wget https://pypi.python.org/packages/source/p/pip/pip-1.5.tar.gz
# tar -zxvf pip-1.5.tar.gz
# cd pip*
# sudo python3.3 setup.py install



3. install Django1.6.1 (python MVC framework)

# sudo pip3.3 install Django==1.6.1

以上就可以使用 python3.3 執行 Django了。