Django10 (Django) Template에서 Session값 이용하기 views.py 에서 세션을 참조하려면, 아래와 같이 사용하지만, Template 에서는 같은 문법을 사용할 수 없다. request.session['세션이름'] = '값' Template에서 Session을 이용하는 방법을 알아보자. settings.py 에 다음을 추가한다. TEMPLATE_CONTEXT_PROCESSORS = ( 'django.core.context_processors.request', ) views.py 에서는 render 함수를 이용해서 리턴한다. return render(request, 'session_test.html') Template에서는 아래와 같이 사용한다. {{ request.session.세션이름 }} Programming/Python 2013. 9. 21. (Django) login_required 데코레이터 Django 의 내장 authentication 모듈을 사용하지 않는 경우, 직접 제작을 해야 하는데, login_required 라는 데코레이터가 없어서, 매번 View 에서 접근 로직을 작성해주어야 해서 번거로웠다. 아래와 같이 별도의 데코레이터를 작성해두면 로직이 바뀌더라도 하나만 변경하면 되니까 코드 관리가 좀 더 편할 것이다. def login_required(function=None): def _dec(view_func): def _view(request, *args, **kwargs): # 아래 로직을 적당히 자신의 사이트에 맞게 고쳐서 쓰면 될 것이다. if "login_yn" not in request.session: return HttpResponseRedirect('/') else: .. Programming/Python 2013. 5. 28. (Django) '쉽고 빠른 웹개발 Django' 버전 1.4 이상에서 진도나가기 '쉽고 빠른 웹개발 Django'은 1.0버전 기준이어서 최신버전 (1.4.3)에서 막히면 진도를 더이상 나갈 수 없게 됩니다. 이에, 최신 버전에서도 진행할 수 있도록 변경된 부분을 반영하여 수정본을 작성해보았습니다. 1.4 이후 부터 디렉토리 구조가 조금 변경이 되었는데, 대부분 이 것 때문에 기존버전과 맞지 않는 부분이 생기는 것입니다. 추후 더 변경할 것이 발견되면 추가하도록 하겠습니다. P. 15 Beforedjango_bookmarks/ __init__.py manage.py settings.py urls.pyAfterdjango_bookmarks/ manage.py django_bookmarks/ __init__.py settings.. Programming/Python 2012. 12. 20. Django 1.4 에서 Template 디렉토리 설정 Django 1.4 에서 가장 큰 변화라면, 전체 어플리케이션의 레이아웃이 바뀌었다는 점이다. 이전 버전에서는 프로젝트를 생성하면 아래와 같이 파일들이 생성되었다. project_name/ `- __init__.py `- manage.py `- settings.py `- urls.py `- wsgi.py 1.4에서는 이렇게 바뀌었다. project_name/ `- manage.py `- project_name/ `- __init__.py `- settings.py `- urls.py `- wsgi.py 여기에서 주의 깊게 볼 것은 상위에 있는 project_name 디렉토리에는 __init__.py 파일이 없기 때문에 패키지명으로 사용할 수 없다는 것과 settings.py 에서 템플릿 디렉토리를 지정할.. Programming/Python 2012. 4. 9. Django 마이그레이션 1.3.1 -> 1.4 이번에 Django 기반으로 서비스하는 시스템을 1.3.1 에서 1.4 로 마이그레이션하였다. settings.py 에서 다음 2가지를 변경해주니, 잘 동작되는 것 같다. 사실, 이 외에도 몇가지 있으나, Django 가 불평은 하지 않았다. 그래도 미래를 위해서 미리 바꾸어주는 것이 좋을 것이다. https://docs.djangoproject.com/en/dev/releases/1.4/를 참고해서 시도해보자. DATABASE # 변경전 DATABASE_ENGINE = 'postgresql_psycopg2' DATABASE_NAME = '디비이름' DATABASE_USER = '사용자' DATABASE_PASSWORD = '비밀번호' DATABASE_HOST = '호스트' DATABASE_PORT = .. Programming/Python 2012. 3. 27. (Django) Debian/Ubuntu + NginX + trunserver + Django 1.3.1 + Python 2.7.2 Django를 Deploy하기 위한 여러가지 방법들을 소개했었는데, 이번 방법이 내가 가장 선호하는 방식이다. Instance 별로 정상동작 유무를 확인하기가 쉽고, NginX 에서는 로드밸런싱을 하고, 하나의 Instance 에 문제가 발생하면 자동으로 제외되어 무장애/무중단 서비스를 제공할 수 있다.여기에서 더 나아가 memcached 등을 이용하여 캐싱까지 처리하면 성능에서도 상당히 만족스러운 결과를 볼 수 있을 것이다. 또한, trunserver 조작에 대해서 개선할 부분이 많이 있다. 이런 부분들은 다음에 생각해보고, NginX와 trunserver 를 이용한 방법을 살펴보자.Install Python$ apt-get install zlibc zlib1g-dev libxml2 libxml2-de.. Programming/Python 2011. 12. 20. (Django) Debian/Ubuntu + NginX + uWSGI + Django 1.3.1 + Python 2.7.2 Install Python$ apt-get install zlibc zlib1g-dev libxml2 libxml2-dev libbz2-dev curl build-essential python$ curl -kL http://github.com/utahta/pythonbrew/raw/master/pythonbrew-install | bash$ echo 'source ~/.pythonbrew/etc/bashrc' >> ~/.bashrc$ pythonbrew install --force --no-test 2.7.2$ pythonbrew switch 2.7.2Install Django, uWSGI$ pip install django psycopg2 uwsgiCreate Project$ mkdir -p /opt/.. Programming/Python 2011. 12. 17. (Django) Ubuntu 10.04 LTS + NginX + Django 1.3 (FastCGI) + Python 2.7.2 이번에는 Ubuntu 10.04 (LTS) 에서 NginX + Django 1.3 (FastCGI) + Python 2.7.2 를 구성해보았다. Python 을 설치하기 전에 zlibc 를 먼저 설치해주어야 distribute 가 제대로 설치되는 삽질이 있었긴 했지만, CentOS에서 설치했던 것처럼 대체적으로 무난하게 설정이 되었다.Install Python# aptitude install zlibc zlib1g-dev# echo 'export PYTHONBREW_ROOT=/opt/pythonbrew' >> /etc/profile; source /etc/profile# curl -kLO http://xrl.us/pythonbrewinstall; chmod +x pythonbrewinstall; ./py.. Programming/Python 2011. 7. 27. (Django) CentOS 5.6 + NginX 0.8.54 + Django 1.3 (FastCGI) + Python 2.7.2 Python 으로 가장 많이 이용되는 웹프레임워크는 Django 이다. 최근 가벼움과 성능으로 인정을 받고 있는 NginX 와 FastCGI 로 연동하여 설치하는 방법을 간단하게 정리해보았다. CentOS 6.0 이 나오긴 했지만, 아직 5.x 환경도 많이 이용되고 있으리라 생각하여 CentOS 5.6 에서 테스트하였으며, 아마 6.0 에서도 무리없이 설치될 것으로 믿는다.Install Python# echo 'export PYTHONBREW_ROOT=/opt/pythonbrew' >> /etc/profile; source /etc/profile# curl -kLO http://xrl.us/pythonbrewinstall; chmod +x pythonbrewinstall; ./pythonbrewinsta.. Programming/Python 2011. 7. 26. (Django) Apache + Django + mod_wsgi 연동 설치 오랜만에 Django 를 살펴보고 있는데, 예전에는 설치할때, mod_python 이 권장이었는데, 지금은 mod_wsgi 로 설치하는 것을 권장하고 있다. 이에 WSGI 연동 설치하는 방법을 다시 한번 정리하였다. 급하게 정리한 것이라서 뭔가 부족한 것이 있을 수도 있지만, 일단 페이지가 열리는 것을 확인했으니, 테스트/개발 시에는 참고하면 괜찮을 것이다. ^^ 참고로, Debian/Ubuntu Linux 를 기반으로 작성하였으니 주의 바란다.Django 설치, Apache + mod_wsgi 설치# apt-get install python-django libapache2-mod-wsgi프로젝트 생성$ mkdir -p /opt/project/web$ cd /opt/project/web$ django-a.. Programming/Python 2010. 10. 20. 이전 1 다음