2014년 12월 13일 토요일

python-social-auth사용하여 django에 google 계정 연동하기

참조 :

google계정 php 연결 - http://www.joinc.co.kr/modules/moniwiki/wiki.php/man/12/oAuth2/Google
twittter계정 django 연결 - https://realpython.com/blog/python/adding-social-authentication-to-django/
http://python-social-auth.readthedocs.org/en/latest/backends/google.html


기본세팅은
위 참조 twitter계정 django 연결 참조

config.py에 설정

2014년 9월 6일 토요일

Fabric을 이용하여 Ubuntu 서버에 Simple하게 FIle 만들기

참고 : http://docs.fabfile.org/en/1.9/tutorial.html

fabric은 이미 설치되어 있다고 가정

local 컴퓨터 파일
fabfile.py
from fabric.api import cd, run

def simple_file_test():
 code_dir ="~"
 with cd(code_dir):
  run("touch hello_fab.txt")

로컬에서 명령

greenyant-Mac:test greenyant$ fab simple_file_test
No hosts found. Please specify (single) host string for connection: ubuntu@192.168.1.222 (서버 아이디@서버 ip주소)
[ubuntu@192.168.1.222] run: touch hello_fab.txt
[ubuntu@192.168.1.222] Login password for 'ubuntu': (서버 패스워드 입력)

Done.
Disconnecting from 192.168.1.222... done.

서버에서 hello_fab.txt 파일 생성되었는지 확인

2014년 7월 8일 화요일

Django와 함께하는 Jquery Ajax의 simple한 예제

참고 :
http://stackoverflow.com/questions/5304517/ajax-post-in-django-framework
http://api.jquery.com/jquery.ajax/




ajaxtest.html





Text Area


views.py
 
def ajaxtest(request):
    if request.is_ajax():
        data = "You click " + request.GET['click'] + " button"
        import json
        return HttpResponse(json.dumps({'message':data}), 'application/json')
    return render(request, 'myapp/ajaxtest.html')
    

2014년 6월 18일 수요일

chart.js를 이용한 방사형 차트 기본 예제

참고 : http://www.chartjs.org/docs/


head 태그 내부에 Chart.js




body 태그 내부
.
  

.

2014년 6월 15일 일요일

Mathjax를 이용해 수식을 타이핑해서 확인할 수 있는 HTML 코드

참고 :
http://docs.mathjax.org/en/v1.1-latest/typeset.html

이어지는 글 : http://greenyant.blogspot.kr/2014/05/html_23.html

It's not working now.




코드



 
It's not working now.

2014년 6월 11일 수요일

열 추가 삭제되는 테이블 django formset과 연동

참고 :
자바 코드예제 : https://djangosnippets.org/snippets/1389/
formsets 다큐먼트 : https://docs.djangoproject.com/en/1.6/topics/forms/formsets/
행 추가삭제 관련 블로깅 : http://greenyant.blogspot.kr/2014/05/table.html

이어지는 글 : http://greenyant.blogspot.kr/2014/06/django-formsets.html


views.py
 
from django.forms.formsets import formset_factory
from myapp.forms import *
def home(request):
    ArticleFormSet = formset_factory(ArticleForm, extra=2)
    formset = ArticleFormSet()
    return render(request, 'myapp/index.html', {'formset':formset})





form.py
from django import forms
class ArticleForm(forms.Form):
    title = forms.CharField()
    pub_date = forms.DateField()



index.html





{% csrf_token %} {{ formset.management_form }} {% for form in formset %} {{ form.title.label_tag }}{{ form.title }} {{ form.title.error}} {{ form.pub_date.label_tag }}{{ form.pub_date }} {{ form.pub_date.error}} {% endfor %}


django formsets의 기초적인 사용

참고 :
https://docs.djangoproject.com/en/1.6/topics/forms/formsets/

formset은 form을 여러개 만들어 사용할때 사용한다.

이 글은 django 프로젝트를 만들어 form을 만드는 방법을 알아야 볼 수 있다.
(djagno 프로젝트 만들기 블로그 링크 : http://greenyant.blogspot.kr/2014/05/django.html
django form 관련 다큐먼트 : https://docs.djangoproject.com/en/1.6/topics/forms/)


여기서 사용한 프로젝트명은 website로 하였고 myapp을 만들어 사용하였다.

myapp->templates->myapp 만듦
myapp -> forms.py 만듦
setting.py에 myapp 추가

website/setting.py
 
...
INSTALLED_APPS = (
    ...
    'django.contrib.staticfiles',
    'myapp',
)
...

website/urls.py
 
...
urlpatterns = patterns('',
    ...
    url(r'^$', 'myapp.views.home'),
    url(r'^admin/', include(admin.site.urls)),
)


myapp/forms.py
 
from django import forms

class ArticleForm(forms.Form):
    title = forms.CharField()
    pub_date = forms.DateField()

myapp/views.py
 
from django.shortcuts import render
from django.forms.formsets import formset_factory

from myapp.forms import *

def home(request):
    ArticFormSet = formset_factory(ArticleForm, extra=3)
    formset = ArticFormSet()
    return render(request, 'myapp/index.html', {'formset':formset})

myapp/templates/myapp/index.html
 
{{ formset.management_form }}

{% for form in formset %}
{{form.as_p}}
{% endfor %}

이상태로 run하여 확인하면

 
 
 
 
 
 

이와 같이 나타나며 페이지 소스를 확인해보면 아래와 같이 나타난다.

페이지 소스
 




 

 


 

 


 

 

이어지는 글 : 

2014년 5월 30일 금요일

django 프로젝트를 mysql로 연결하고 mysql-workbench로 보기

이 과정은 앞서 우분투에 설치한 django project를 기준으로 진행되었다.
(링크 : http://greenyant.blogspot.kr/2014/05/django.html )

먼저 mysql을 설치한다.
sudo apt-get -y install mysql-server mysql-client

설치 도중 root 비밀번호 입력이 뜬다.
본 예제는 "1111" 을 사용하였다.
앞으로 비밀번호를 사용하는 것을 보여줘야하기 때문에 단순한 비번을 사용하였다.

설치 후 아래 명령으로 동작 확인.
mysql -u root -p
(비번 입력)


















mysql-workbench를 우분투 소프트웨어 센터에서 검색해서 설치한다.












더 많은 정보를 누르면 아래 그림과 같이 자세한 정보를 볼 수 있다.
설치하고나서 실행할 때는 설명에 써있는 것처럼 터미널에서
mysql-workbench 명령어를 입력한다.



















mysql workbench를 실행하면 아래와 같은 화면이 뜬다.
로컬에 설치한 mysql로 연결하기 위하여 "New Connection"을 누른다.


























여기서 나는 Connection Name에 "localDB"라고 입력 했음.

















그러면 아래와 같이 메인창에 방금 만든 localDB 가 뜬다.
떠블 클릭해서 입장~




















처음에 기본적으로 만들어져있는  SQL File 창에 SQL 문을 입력하고 번개 표시를 누른다.
아래와 같이 현재 설치되어 있는 데이터 베이스를 보는 명령을 실행하면
아래에 표로 표시가 된다.


















확인이 되었으면 쿼리문을 아래와 같이 보내어
django_db(임의로 지정한 것임)를 만든다.
오른쪽 SCHMAS에 새로고침을 눌러 생성한 DB를 확인한다.












여기서 django_db의 encoding을 맞추어 준다.
이부분을 설정하지 않으면 나중에 만들 테이블에도 문제가 생겨
django의 admin페이지에서 한글로 수정하지 못하는 웃지 못할 일이 벌어진다.


Apply버튼을 누르면 실행할 SQL문이 나오는데,
사실 이 SQL만 따로 실행해도 된다.



드디어 만들어 놓은 django project를 사용하자.
Aptana Studio에 올려서 하는 방식으로 설명한다.
이것은 아래 링크를 통해 설치하는 것을 볼 수 있다.
(링크 : http://greenyant.blogspot.kr/2014/05/aptana.html )

Aptana Studio를 실행해서 Import Project를 통해 앞서 만든 django 프로젝트를 연다.



















열었으면 setting.py 문서를 열어 DATABASES 설정을 아래와 같이 바꾼다.
mysql에서 설정했던 것으로 맞추어 주는 것이다.





















설정을 마쳤으면 터미널에서 아래와 같은 명령으로 mysql DB로 연결시킨다.

source /home/ubuntu/webapps/main_env/bin/activate (가상환경 실행)
pip install mysql-python (mysql-python 설치)
python ~/webapps/hello_django/manage.py syncdb (syncdb로 DB 연동)

syncdb 할 때, 아래와 같이 생성되는 table을 볼 수 있으며
관리자로 사용할 계정을 만들게 된다.

여기서는 greenyant으로 만들었다.



스키마를 새로고침하여 table이 올라간 것을 확인할 수 있다.




















아래와 같이 SQL문을 통하여 auth_user에 greenyant 계정이 들어와 있는 것을 알 수 있다.



이번엔 만들어진 table 간의 상관관계를 보기위하여
mysql workbench 기능 중 EER model을 사용한다.

아래와 같이 다시 홈 화면으로 다시 돌아가
"Create EER Model From Existing Database"를 실행한다.










아래와 같이 몇가지 세팅을 하고나면






















아래 그림처럼 정렬되지 않은 모델을 볼 수 있는데,




























이를 잘 정렬하면 아래와 같은 관계를 볼 수 있다.



참고 : "

How to create EER Diagram with MySQL WorkBench"

유튜브 영상 - http://www.youtube.com/watch?v=v5Q0lz5FkW0

우분투에 django 설치하고 실행해보기

이 과정은 ubuntu 데스크 탑 버전에 올리는 것을 기준으로 하였다.(id : ubuntu)
(링크 : 우분투 설치&설정 - http://greenyant.blogspot.kr/2014/05/ec2.html )

apt-get 설정 업데이트
sudo apt-get update
sudo apt-get -y upgrade

연관 라이브러리 설치
sudo apt-get -y install build-essential python-all-dev python-dev python-setuptools libpq-dev libev-dev
sudo easy_install pip
sudo apt-get -y install libmysqlclient-dev

가상환경 설정
sudo apt-get -y install python-virtualenv
virtualenv /home/ubuntu/webapps/main_env

가상환경 설정하면서 webapps 폴더도 생성 되었다.
이곳을 개발용으로 사용한다.

가상환경 실행
source /home/ubuntu/webapps/main_env/bin/activate

django 설치
pip install django

hello_django라는 이름으로 django 프로젝트 생성 및 실행
cd webapps
django-admin.py startproject hello_django
cd hello_django
python manage.py syncdb

python manage.py runserver

브라우저에서 127.0.0.1:8000으로 확인



























연관글 :
django 프로젝트를 mysql로 연결하고 mysql-workbench로 보기
http://greenyant.blogspot.kr/2014/05/django-mysql-mysql-workbench.html

2014년 5월 29일 목요일

우분투에 mezzanine 설치하고 실행해보기

참고 링크 :
https://github.com/stephenmcd/mezzanine

이 과정은 ubuntu 데스크 탑 버전에 올리는 것을 기준으로 하였다.(id : ubuntu)
(링크 : 우분투 설치&설정 - http://greenyant.blogspot.kr/2014/05/ec2.html )

apt-get 설정 업데이트
sudo apt-get update
sudo apt-get -y upgrade

연관 라이브러리 설치
sudo apt-get -y install build-essential python-all-dev python-dev python-setuptools libpq-dev libev-dev
sudo easy_install pip
sudo apt-get -y install libmysqlclient-dev

mezzanine 의존 라이브러리 설치
sudo apt-get install libjpeg8 libjpeg8-dev
sudo apt-get -y build-dep python-imaging

가상환경 설정
sudo apt-get -y install python-virtualenv
virtualenv /home/ubuntu/webapps/mezza_env

가상환경 설정하면서 webapps 폴더도 생성 되었다.
이곳을 개발용으로 사용한다.

가상환경 실행
source /home/ubuntu/webapps/mezza_env/bin/activate

mezzanine 설치
pip install mezzanine

hello_mezza라는 이름으로 mezzanine 프로젝트 생성 및 실행
cd webapps
mezzanine-project hello_mezza
cd hello_mezza
python manage.py createdb --noinput
python manage.py runserver

브라우저에서 127.0.0.1:8000으로 확인


우분투 데스크탑에 Aptana 설치

우분투 설치 관련 글 :
http://greenyant.blogspot.kr/2014/05/ec2.html

먼저 jre6를 설치한다.
우분투 소프트웨어 센터에서 설치할 수 있다.

터미널에서 git 설치를 한다.(Aptana 기본 지원기능)
sudo apt-get -y install git

aptana.com에서 다운로드(저장으로 받는다. 열기로하면 오류 가능)하여
내폴더에 압축을 푼다(드래그&드롭 가능).















바탕화면에 바로가기 만들기













python 사용자의 경우
Window - Properties - PyDev - Interpreter-Python에서 Auto config 실행


EC2 서버 테스트용으로 사용할 가상 머신 설치

앞으로 진행할 서버 관련 세팅을 테스트하는 가상머신을 세팅하고자 한다.

가상머신 프로그램으로는 Virtual Box을 사용하였고
OS는 Ubuntu 12.04 데스크탑 용으로 사용하였다.
(14.04가 지금 나온 상황이지만 아직 불안정하단 판단)

내 세팅의 경우 :
한국어 용으로 설치(apt-get 서버로 한국이 잡힌다.)
메모리 크기 - 1024MB
VDI 가상 하드 사용
계정 이름 - ubuntu로 세팅(EC2 설치시 아이디와 같음. 다른 세팅은 디폴트사용, 암호입력)

OS 설치완료 후,
메뉴 ) Devices - Insert Guest Addition CD image 실행
설치 완료 후 재부팅(화면 사이즈에 따라 해상도 변화 확인)

메뉴 ) Devices - 클립보드 공유 - 양방향 설정

터미널 실행하여 apt-get update하고 upgrade함.
sudo apt-get update
sudo apt-get -y upgrade









업데이트 관리자 설치











이 상태로 가상머신을 종료하고,
추가적인 작업(개발 시작)은 가상 머신을 복제해서 사용한다.






복제 옵션은 완전한 복제를 사용한다.

복제 시간이 오래걸리긴 하지만,
개발 도중 다시 되돌리려면 다시 설치해야하는 수고보다는
복제해서 사용하는 것이 낫다.

2014년 5월 26일 월요일

Table 행 추가삭제 만들기

참고 :
http://stove99.tistory.com/93
http://www.freezner.com/archives/270
http://api.jquery.com/live/


행 추가 삭제 코드
 




2014년 5월 23일 금요일

HTML 코드를 타이핑해서 확인할 수 있게 하기

웹 상에서 TEXTAREA에 HTML 코드를 타이핑해서 바로 확인할 수 있게 한다.
아래 쪽 텍스트 박스에 HTML 코드를 타이핑하고 transform 버튼을 누르면 오른쪽에 바로 반영된다.


It's not working now.

위 코드는 아래와 같다.

코드



It's not working now.

2014년 5월 22일 목요일

HTML 코드 Blogger(Blogspot)에 게시하기


참고 : http://dragonraja2010.blogspot.kr/2011/01/test.html

SyntaxHighlighter을 적용하는 방식이다.

이 방식은 HTML  코드를 블로거에 나타내는 좋은 방식이지만,
editor 창이나, 미리보기로 안보이는 단점과
html, head, body 태그는 표현 못한다.

그래서 나는 html, head, body는 표현하지 않고
따로따로 코드를 게시하는 것이 낫다고 생각하고,

editor 창이나, 미리보기로 안보이는 단점은
table을 사용해서 나타내고자 한다.

사용하는 table 양식
 
....

사용하는 태그는 위와 같으나,
"글쓰기" 모드에서 표째 복사해서 붙혀넣기하고
"HTML" 모드에서 수정하면 됨..

먼저 "HTML" 모드에서 맨 처음 부분에 추가해야할 부분이다.

SyntaxHighlighter 설정 소스를 첨가




 



 















 



이것은 참조한 사이트와 정확히 일치한다.

그 다음으로 코드를 테이블 안에 코드를 첨부할 태그를 넣는다.

코드 첨부할때 사용할 태그
 ...


예제는 아래와 같다.

예제
예제코드
 안녕하세요. 푸른개미 블로그입니다.
    

결과
안녕하세요. 푸른개미 블로그입니다.

아래는 테이블을 복사해서 불힐 때 사용
제목을 입력하세요.