근데 장고에서는요. table에 insert하는 작업을 user = User.objec

 
Han Cold Kim

근데 장고에서는요.

table에 insert하는 작업을

user = User.objects.create(name=’김한기’);
user.pk

이런식으로 사용하잔아요…

create는 내부적으로 insert할것이고…

그다음 해당 객체의 pk를 어떻게 바로 구해오는건가요…?

그니까 insert를 하고 그 insert를 한것의 pk를 어떻게 구하죠…?

  • Han Cold Kim

    그니까 장고orm이 어떤 작업을해서 구해주는건지가 궁금한거에요…

    Jamie J Seol

    user.pk 찍는 순간 쿼리 한번 더 날릴껄요. 로그 확인해보심이..

    Jeong-Min Lee

    백엔드마다 다릅니다. 추가 쿼리를 날리는 경우도 있고, cursor.lastrowid 를 이용하는 경우도 있습니다.

    Han Cold Kim

    select를 한다는 건가요…?? select pk from user where name=’김한기’ 이런쿼리를 날린다는 건가요?? 그렇군요…

    Han Cold Kim

    mysql기준에선요…?

    Jamie J Seol

    from django.db import connection
    connection.queries
    로 확인해본결과 쿼리 한번만 날리네요. pk 말고 다른 필드 접근해도 안날리고 잘 처리하네요 (mysql 기준)

    Jeong-Min Lee

    mysql, sqlite3 백엔드는 cursor.lastrowid 사용하는군요.

    Han Cold Kim

    헉 그렇군요… 감사합니다!

    Jamie J Seol

    간단한 추측을 해보자면 pk는 cursor.lastrowid로 알아오고 나머지는 모델링한걸로 얻어오지 않을까요? create 할때 얻은 정보랑 디폴트값 등등해서

    Jeong-Min Lee

    https://github.com/django/django/blob/master/django/db/backends/__init__.py#L882

    Jeong-Min Lee

    http://www.python.org/dev/peps/pep-0249/#lastrowid

    Jeong-Min Lee

    oracle, postgresql 백엔드는 추가 쿼리를 날리는군요. 자세한건 장고 소스에서 last_insert_id 로 검색해보시면 …

    Woojing Seok

    db의동작이 궁금하시다면 manage.py shell 로 들어가셔서
    궁금하신 동작을 수행하신후(여기서는 create겠죠?)
    django.db.connection.queries 이걸 실행해보면 알수 있습니다.
    에고… 이미 진석님이 같은 내용을 남겨주셨네요;;

    Seung-Hyo Seo

    mysql 의 경우에 한해서 말씀 드리자면 mysql 에서는 정상적으로 insert 가 성공하게 되면 last_insert_id 라고 해서 auto increment key 값을 반환 합니다.

    그래서 Django ORM 에서 pk 로 Auto field 를 사용하시면 바로 object.pk 에서 값을 가지게 되죠…

    Oracle 이나 pgsql 은 seq 를 이용하는게 있었던거 같긴 한데..
    아마 그걸 적절하게 쓰시면 될 겁니다.

    Seung-Hyo Seo

    http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

    http://stackoverflow.com/questions/2548493/in-python-after-i-insert-into-mysqldb-how-do-i-get-the-id

    참고 하시면 될 것 같네요.

    Han Cold Kim

    헉헉 !! 이렇게 많은 답변이…!! 감사합니다. 참고하겠습니다!

Advertisements

지금 해커톤에서 열혈개발중인데 같이 하시는 개발자분이 php만 하신대서 같이 php로하

 
Han Cold Kim

지금 해커톤에서 열혈개발중인데

같이 하시는 개발자분이 php만 하신대서

같이 php로하고있는데…

아 그리워라 장고여~ 😦

  • Sung Chan Lee

    김한기 우하하 제가 요즘 스칼라 하는거랑 비슷하네요 ㅋㅋ

    Woojing Seok

    그럼 한기님은 장고밖에 못한다고 우기세욤 :3

    KyungHoon Kim

    어디 해커톤 이신가요~?!

    Han Cold Kim

    빅캠프 입니다…!

    KyungHoon Kim

    아 그 선생님들 참여하시는 그것이군요~! 그래서 팀이 아니라 모르는 개발자분도 섞여서 개발하시는 거였군요 ㅋㅋ; 재밌으시겠어요! ㅠㅠ/

    Han Cold Kim

    장고로 했다면 더 재밌었을텐데 ㅎㅎ

안녕하세요 제가 라즈베리파이로 태그관련 물건을 만들려 하는데 http://blog.itea

 
Gyuyeol Gyeong

안녕하세요 제가 라즈베리파이로 태그관련 물건을 만들려 하는데
http://blog.iteadstudio.com/to-drive-itead-pn532-nfc-module-with-raspberry-pi/
위 사이트에 아래 압축파일 소스가 있는데 readID.c를 컴파일 해야 하는데 에러가 납니다. 제작사에 메일을 보내도 문제고 .. 원인을 알수있는 고수님 없나요 ?? ㅠㅠ

  • 박채연

    안에 makefile가 있네요. make로 컴파일 해보세요

    Gyuyeol Gyeong

    어찌하나요 ?? 제가 gcc말고는 몰라서 …..

    Yeaji Shin

    make all 혹은 make, make install 해보시면 됩니다. 뭔가 새로운 파일이 생겼을꺼에요 ㅋ

    Gyuyeol Gyeong

    파이썬을 배우려 돌아다니다. 어느분이 추천해주시더라구요 여기가면 프로그래밍쪽에서 잘하는분들 많이계신다고

    Eunchong Yu

    https://www.facebook.com/groups/pythonkorea/
    이 그룹도 괜찮습니다. 저쪽은 파이썬 전반에 대해 다룹니다 🙂

안녕하세요. Sublime으로 django 개발하시는 분들이 꽤 있으신데, django +

 
Jacob Seongwoon Lee

안녕하세요. Sublime으로 django 개발하시는 분들이 꽤 있으신데,
django + sublime text 세팅과 플러그인좀 공유 부탁드립니다!
간단한 설명도 더해주시면 더 좋을 것 같습니다.

– 별도로 sublime text2 쓰시는지 sublime text3 쓰시는지도 공유 부탁드립니다.

  • Han Cold Kim

    sublimelineter인가… pep8을 안지키는 부분 표시해주는 플러그인입니다.

    Han Cold Kim

    아그리고 2를 사용중입니다.

    Kenial Lee

    +
    Djaneiro – autocomplete assist
    DjangoNoseTestRunner – unit test assist
    Django-DocsSearch – django document launcher

    Kenial Lee

    version 2 사용중입니다

파리스냅촬영 전문 스튜디오인데 파리에 일상사진들도 올리고 파리에 관한 쇼핑정보,여행,브랜드

 
Sang Ho Ahn

파리스냅촬영 전문 스튜디오인데 파리에 일상사진들도 올리고 파리에 관한 쇼핑정보,여행,브랜드 등 다양한 정보들을 올리고 있으니 좋아요~ 누르시고 팬이 되어주세요^^https://www.facebook.com/honeymoonsnap


  • Han Cold Kim

    허니문 스냅 사이트도 장고로 되어 있나요?

    Jaeyoung Lee

    상체를 달라!!!

질문드립니다. 세션키를 가지고 모바일 환경에서 통신망이 바뀐후에도 세션을 계속 유지하는

 
허순열

질문드립니다.

세션키를 가지고 모바일 환경에서 통신망이 바뀐후에도 세션을 계속 유지하는 방법이 있는지 궁금합니다~

  • Han Cold Kim

    통신망이 바뀐다는게 ip가 바뀐다는 말씀이신가요?? 근데 특별히 설정 안해도 세션 유지되지 않나요??

    허순열

    넵..ip변경시를 말씀드린거에요.. 그냥 유지되나요? ㅡㅡa

    Han Cold Kim

    아 확실하지는 않습니다.

    그런데 제가 유지된다고 생각하는 이유는

    세션이라는게 브라우저 쿠키에 키를 저장하고 있고,

    그거랑 서버에 저장된거랑 비교해서 유지하는데

    ip가 바뀐다고 해당 쿠키가 사라지거나 하지 않을꺼 같아서요.

    Han Cold Kim

    물론 제로보드처럼 동시에 같은 세션아이디로 접근을 하면 양쪽다 튕겨내도록 설정되어있다면 ip가 바뀌었을때 세션이 끊길꺼 같은데, 경험상 한 아이디로 여러ip에서 동시에 로그인이 가능했던걸로 기억합니다.<- 기본설정으로…

    허순열

    김한기 감사합니다. 테스트 해봐야 겠네요~^^

    Gnu Shim

    제가 알기로도 기본적으로 가능합니다. 다만 XE 같은 경우에는 IP로 세션 및 자동로그인을 체크하기 때문에 그 부분은 아예 없애주는 게 경험상 편리했습니다.

    Hong Jun Choi

    허순열 저두 결과가 궁금하네요 ^^

    허순열

    Gnu Shim 참고하겠습니다~

    Chinseok Lee

    IP 바뀌어도 유지됩니다. 쿠키 단에 세션키를 가지고 있으니깐요.

    허순열

    Chinseok Lee 괜한 고민을 한 것 같네요..ㅎ