What’s new in Django 1.8 https://docs.djangoproje

 
Seung-Hyo Seo

What’s new in Django 1.8

https://docs.djangoproject.com/en/dev/releases/1.8/

1. Model._meta 정보를 다루는 API 가 생김…이제 뻘짓 안해도 됨.
2. 다양한 Template 엔진을 쓸 수 있음
3. PostgreSQL 특화된 기능이 생김 ( ArrayField, HStoreField 같은 복잡한 데이터 형 을 지원하는 필드 인듯…아마도 JSON 데이터 형 같은…)
4. 보안 관련 미들웨어 추가 됨.
5. UUID/Duration 데이터형 지원
6. TestCase 용 데이터 셋업 지원!
7. 기타 소소한 기능 변화…등..

그리고….

Related object 작업이 기본으로 하나의 Transaction 안에서 이뤄짐…
더불어 Transaction Middleware 가 빠짐………

기타 DBMS 지원 내용이 변경됨…(최소 지원 DB버전이 올라간듯…)
공식적인 지원 DBMS 가
postgresql 9.0+
mysql 5.5+
Oracle 11.1+

기타 등등…

새 LTS 버전이라 파격적으로 바뀌는 듯 하네요…

  • 유수정

    너무 빠르게 변하네요

    Seung-Hyo Seo

    아직 개발중인 버전이긴 합니다만…

    새로이 추가되는 내용들을 보자면 … 일찍 맞춰서 써보시는 것도 좋을것 같습니다 ~~ 게다가 새 LTS 버전이기 때문에 충분히 그럴만한 가치가 았지 않나 생각해요~

    Daniel Kim

    1.7로 업글해서 migration 적응하는데 조금 걸린게 어제 같은데 벌써 1.8이..

    Seungho Kim

    배우는 속도보다 업데이트가 빠른 플랫폼. 내가 필요한걸 나보다 먼저알아서 업데이트 해주는 플랫폼.

https://www.youtube.com/watch?v=ff_xRmG27mg Djang

 
조성욱

Django로 프로젝트 템플릿인데요.. 뭐 이런 종류 많긴한데.. 그래도 이분.. 많이 만드셨음. ㅋ

ngix 1.4.6 + uwsgi 4.8.2 + django 1.5.12 우분투 14.04

 
Seungho Kim

ngix 1.4.6 + uwsgi 4.8.2 + django 1.5.12 우분투 14.04.2

를사용하고있습니다. 파일을 업데이트해도 기존 페이지를 보여주는 문제가 있습니다. 심지어 파일을 지워도!! 별다른 캐싱 셋팅은 하지 않았습니다. 버전은 다르지만 다른 서버에서는 uwsgi와 nginx만 재시작 해주면 문제없었습니다. 같은 셋팅파일인데 이상하네요. 그렇다고 특정 시간이 아니라 랜덤(?) 하게 업데이트 되는 기분입니다.

  • Donghyun Cho

    파일이 python 소스 파일을 말하시는 건가요? 아님 static file들을 말하시는 건가요? 만약 소스 코드라면 pyc 파일 지워보셨나요? 종종 pyc 파일이 릴리즈가 안되고 버티는 경우가 종종 있습니다. 서버 재시작 시 프로젝트 폴더 아래의 pyc파일들을 지워주는게 좋더라구요.
    http://stackoverflow.com/questions/785519/how-do-i-remove-all-pyc-files-from-a-project

    Seungho Kim

    pyc 파일도 아닌것 같고… 뭘까요? ㅠㅠ

    Seungho Kim

    static file들은 잘 바뀝니다. 이상하게 .py 파일만 안 바뀝니다. 심지어 폴더를 삭제해도 예전 페이지가 서브되네요… nginx 아니면 uwsgi 가 범인 같습니다만 ㅠㅠ 어렵네요.

    남홍김

    .py 파일을 업데이트 하셨으면, gunicorn의 경우 리스타트를 해줬습니다. uWSGI도 마찬가지 아닐까 추측해봅니다.

    Seungho Kim

    모두 리스타트 해줘도 결과는 마찬가지네요. 흐흠…

    박영록

    uwsgi만 stop 시키고 이것저것 관찰해보면 조금 도움되는 정보가 나올 수도…

    Seungho Kim

    service 로 죽이면 안되서 혹시나해서 kill 로 다 죽이니까 되네요. 이런 경우는 처음이라 좀 당황스럽네요.

    Chinseok Lee

    uwsgi 프로세스가 제대로 재시작 안 되고 있나 봅니다.

    Seungho Kim

    stop도 안되더라구요. ㅎㅎ

    Kyeong-Mook Kay Cha

    저는 ubuntu에서 저 문제를 겪었었고, 저도 kill로 죽여서 해결했었어요.

    Seungho Kim

    저도 우분투였던걸로봐선 뭔자 고질적인 문제인가보네요. 으… 만 하루를 이것 때문에 날렸네요

현재 Django REST Framework로 백엔드 API를 개발하고 있는 중인대, Vi

 
Jae Lee

현재 Django REST Framework로 백엔드 API를 개발하고 있는 중인대,
Viewset endpoint만 web-browsable API에 등록이 되고 APIView 같은 경우는 등록이 안되네요.

이유가 Viewset만 DRF의 router를 통해 urlpattern에 등록되서인것같기도 한대 혹시 이에 확실한 답변을 아는 분 계신가요? (현재 DRF documentation 보면 APIView도 등록이 되는걸로 나와있긴 합니다)

SO에 질문 올려봤는대도 잠잠해서 이곳에 올려봅니다!

  • Sebum Lee

    저 코드만 봐선 모르겠는데 전 APIView만 쓰는데 잘 되거든요. 혹시 뷰에 renderer_classes 를 JSONRenderer 만 지정해주셨나요?

    Sebum Lee

    또하나 확인하셔야 할건 세팅에서 기본 렌더러를 뭐로 해주셨는지요?
    REST_FRAMEWORK = { ‘DEFAULT_RENDERER_CLASSES’: ( ‘rest_framework.renderers.BrowsableAPIRenderer’, ) }

    Sebum Lee

    자세한 링크는 여기에…
    http://www.django-rest-framework.org/api-guide/renderers/

    Jae Lee

    제가 알기론 DEFAULT_RENDERER_CLASSES 기본값에 BrowsableAPIRenderer가 포함되어 있는 걸로 알고 있습니다. 혹시 몰라서 추가해봤는대 별 다른 차이점은 없네요.

    Jae Lee

    아 제가 설명을 제대로 못한것 같네요. 제 질문은 그 해당 APIView endpoint URL에 접속했을때 나오는 정보가 아니라, API Root에 들어갔을때 혹시 Viewset endpoint와 더불어 APIView endpoint도 같이 보여지도록 설정이 가능한지 묻고 싶습니다. (사진에서는 Viewset endpoint인 tokens만 보여지네요.)

    Sebum Lee

    안해봐서 모르지만 예상을 한번 해보자면, 스택오버에 올리신 코드를 보시면 tokens만 라우터에 들어가있습니다. 다른것들도 router에 한번 넣어보세요.

    Sebum Lee

    제가 예상한거 안될거 같네요. router는 viewset만 된답니다.

    Sebum Lee

    암튼 지금 저 view에 tokens밖에 안보이시는 이유는 이렇게 하셨기 때문입니다. url(r’^api/’, include(router.urls)),
    즉 router에는 tokens밖에 안하셨기때문입니다.

    Jae Lee

    Sebum Lee 예, 처음 예상이 그랬었어요. APIView도 등록이 가능하게 변형시킨 router 3rd-party module을 찾긴했지만 과연 이거하나 위해서 외부 의존성을 높여야하나 고민중입니다. 작은 스타트업이다 보니까 따른 API 문서 작성 없이 빠르게 프론트엔드/앱 개발자들하고 정보가 공유되는 방안을 찾고 싶은대 말이죠. 어쨌거나 답변해 주셔서 감사합니다!

    Sebum Lee

    별말씀을요. 저도 덕분에 배웠습니다. ^^

    Sebum Lee

    이게 혹시 원하시는거 아닐까요?
    http://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/

    박영록

    browsable api는 막상 써보려고 하면 이것저것 불편한 게 많죠. django-rest-swagger 추천합니다.

장고 1.8 베타가 나왔습니다. 일정보다 조금 늦어졌지만, 이 추세대로 가서 3월 말 혹은

 
남홍김

장고 1.8 베타가 나왔습니다. 일정보다 조금 늦어졌지만, 이 추세대로 가서 3월 말 혹은 4월 초 쯤에 1.8 정식 버전 보길 기대해봅니다. ㅎㅎ

자매품으로 장고 1.7.5도 릴리즈되었습니다.

  • SeongMin Park

    너~무너무 빨리변하는 장고 ㅜ.ㅠ

    유수정

    헐… 1.7 버전 공부하고 있는데

    Lim DongHyeon

    허….

    Chinseok Lee

    빨리 나왔으면 좋겠네요. ㅎㅎㅎ // 1.8 에서는 PostgreSQL의 ArrayField 와 HStorefield 도 지원하는 군요. jsonb 도 지원해주면 좋겠네요.

    Hyoungchul Shim

    아직 1.5 쓰는데;;; 빨리 올려야겠네요 ㄷㄷ

안녕하세요. 공부하다가 잘 해결되지 않아 첫 질문 올려봅니다.ㅠ Django 1.7 버전

 
김명주

안녕하세요. 공부하다가 잘 해결되지 않아 첫 질문 올려봅니다.ㅠ

Django 1.7 버전에 Python 3.4 버전 사용하고 있습니다.

http://stackoverflow.com/questions/12626045/pytz-and-astimezone-cannot-be-applied-to-a-naive-datetime 를 참고해서 제가 코드를 작성한 부분입니다.

s = SessionStore()
s[‘user_id’] = ‘abby’
local_tz = pytz.timezone(‘Asia/Seoul’)
start_date = local_tz.localize(datetime(2015,2,26),is_dst=None)
s.set_expiry(start_date)
s.save()

그런데 mysql django_session 테이블에서 expire_date 가 한국 시간대로 변경되지 않고 계속 UTC 기준으로 입력됩니다. ㅠㅠ

settings.py 의 관련 부분입니다.

SESSION_EXPIRE_AT_BROWSER_CLOSE = True
SESSION_SERIALIZER=’django.contrib.sessions.serializers.PickleSerializer’

LANGUAGE_CODE = ‘en-us’

TIME_ZONE = ‘Asia/Seoul’

USE_I18N = True

USE_L10N = True

USE_TZ = True

어디가 잘못된 걸까요..??

(밑에 stackoverflow 링크가 잘못 연결되었네요.;;;)

  • 김명주

    2015,2,26 이 이런식으로 들어갑니다ㅠㅠ

    남홍김

    USE_TZ를 쓰면 UTC기준으로 입력이 되는거죠. https://docs.djangoproject.com/en/1.7/ref/settings/#use-tz

    남홍김

    그리고 위에 링크 설명대로 하실 필요가 없어요. 장고 내부적으로 USE_TZ 세팅에 따라 변경 저장되니까요.

    김명주

    USE_TZ = False 로 하면
    can’t subtract offset-naive and offset-aware datetimes 에러가 뜨네요 ㅠㅠ

    김명주

    아무것도 안하고 그냥 set_expiry(300) 식으로 호출하면 UTC 기준으로 입력이 되던데 내부적으로 USE_TZ 세팅에 따라 변경 저장된다는게 무슨 말씀이신가요??

    남홍김

    제가 링크해드린 문서를 보시고, 관련 코드를 찾아 보세요.

    김명주

    네 알겠습니다. 답변 감사합니다

    김명주

    김남홍 USE_TZ = False 로 하고 s.set_expiry(300) 으로 호출하니까 한국 시간으로 5분 뒤로 잘 설정되네요.. 감사합니다 !!^^