본문 바로가기

Django13

[Django] File upload (FileField, ImageField) Django 에서 파일(이미지)를 업로드하기 위해서는 FileField 또는 ImageField 를 사용하면 된다. Django Test Project 만들기 테스트를 위해 간단한 프로젝트를 만든다. (Pycharm 을 사용한다면 더 쉽게 프로젝트를 만들 수 있다.) $ django-admin.py startproject firstsite 주로 Django project 에서는 startapp 명령어를 통해 app 을 만든다음 application 단위로 코딩을 하지만 본 가이드에서는 Django Project 를 만드는게 목적이 아니므로 app 을 따로 만들지 않고 project 에서 바로 테스트를 할 것이다. (db 또한 Django 에서 제공하는 sqlite3 을 사용할 것이다.) settings... 2016. 10. 19.
[Django] uwsgi + nginx in ubuntu 이 페이지는 https://www.digitalocean.com/community/tutorials/how-to-serve-django-applications-with-uwsgi-and-nginx-on-ubuntu-14-04 사이트에 설명된 가이드 해석 및 테스트를 하며 발생된 이슈를 정리합니다. ~~ 작성중 (이 부분의 내용은 프로젝트 생성 관련 내용으로 위의 링크에서도 이해하기 쉽습니다.) ~~uWSGI 애플리케이션 서버 설정하기이제 두개의 Django 프로젝트 설정을 마쳤고, uWSGI 설정을 할 준비가 되었다. uWSGI 는 Django 애플리케이션과 WSGI 라는 표준 인터페이스로 통신하는 애플리케이션 서버이다. ubuntu에서 Nginx와 uWSGI 를 설정하는 더 자세한 사항은 여기에서 확인.. 2016. 10. 18.
[Python] SQL Injection 과 보호 방법 SQL injection protection장고의 queryset(ORM)을 사용할 경우, SQL injection을 막아준다. 하지만 raw queries를 사용하는 extra(), RawSQL를 사용하거나 실제로 connection을 통해 직접적인 쿼리를 통해 사용할 경우에는 SQL injection 처리를 따로 해줘야 한다.Python SQL injectionhttp://bobby-tables.com/python.html 에서 Python SQL injection 방법에 대해 설명하고 있다.Bad:cmd = "update people set name='%s' where id='%s'" % (name, id)curs.execute(cmd)Good:cmd = "update people set name=.. 2016. 10. 13.
[REST] Nested relationships Nested relationshipsNested relationsips는 serializers 자체를 serializer 필드로써 사용하는 방법이다.만약, serializer를 리스트 파라미터로 받고 싶은 경우, 필드를 추가할 때 many=True를 추가하면 된다.Example: class TrackSerializer(serializers.ModelSerializer): class Meta: model = Track fields = ('order', 'title', 'duration') class AlbumSerializer(serializers.ModelSerializer): tracks = TrackSerializer(many=True, read_only=True) class Meta: model =.. 2016. 10. 11.
[REST Framework] extra()를 사용한 AS serializer 필드 등록 이 페이지는 Django, REST Framework의 Class based API인 ViewSet을 사용하는 것을 기반으로 설명하고 있습니다. 장고 모델에 있는 컬럼을 AS 를 이용하여 다른 변수를 추가하여 표현하고 싶을 때, 장고의 extra()를 사용하면 SQL의 AS로 치환된다. SELECT SUBSTRING(da_date, 1, 4) AS year, da_date FROM test_table; 위와 같이 da_date라는 컬럼의 값을 substring()을 이용하여 year라는 값을 추가하고 싶다. 이럴 경우, queryset의 extra()함수를 사용하면 된다.views.py TestTable.objects.all().extra( select={'year':'SUBSTRING(da_date, .. 2016. 10. 10.