일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 |
- 중국맛집
- 우분투
- 파이썬
- coursera
- 퍼즐게임
- 프로젝트오일러
- AWS
- 인디게임
- 워킹데드
- FPS
- github
- API
- 스팀
- 게임
- 컴퓨터네트워크
- Python
- lambda
- C#
- https
- pycon
- django
- 먹방
- 몽골여행
- Project Euler
- 알고리즘
- certbot
- 그래픽노블
- flask
- 블라디보스토크
- codility
- Today
- 134
- Total
- 324,498
목록django (11)
YUDA't

서론; 휴대폰 인증을 위해 거쳐야 하는 프로세스는 다음과 같다. 유저가 휴대폰 번호를 입력한다. 해당 번호와 랜덤 숫자 4자를 DB에 저장한 뒤, 인증 번호(랜덤 숫자)가 담긴 문자를 유저에게 보낸다. (인증번호 전송 API) 유저가 인증 번호를 입력한다. DB에서 유저의 휴대폰 번호와 인증 번호를 대조한 뒤 맞다면 True를, 틀리다면 False를 리턴한다. (인증번호 확인 API) 여기서 2, 4번에서 필요한 API 두 개를 만들어보려 한다. 스펙은 다음과 같음 Django 2.2 PostgreSQL 인증번호 전송 API 1) 일단 유저의 전화번호와 랜덤생성한 숫자 4자를 auth에 테이블에 저장한다. auth 테이블은 단순히 phone_number와 auth_number 만을 저장하게 하고, pho..

(Django 초기 세팅 과정은 넣지 않았다.) 0. PostgreSQL Database 설치 - 설치 경로 (최신 버전인 11.3 설치함) - 설치 과정은 여기 참고 1. 설치 후 PgAdmin4 실행 - 시작 > pgadmin 검색 > 실행 - 설치 시 저장한 비밀번호 입력 2. 유저 생성 - Login/Group Roles > Create > Login/Group Role... - Name 입력 - 패스워드 입력 (1234567890 으로 해줌) - 권한 부여 (알아서) 3. 데이터베이스 생성 - Database > Create > Database... - Database 이름 입력 & Owner에 아까 만들어준 Role 선택 4. Django 프로젝트에서 psycopg2 모듈 설치 pip inst..

이 문서는 Designing Better Models 를 번역한 것입니다. 더 나은 Django 모델을 디자인하기 위한 몇 가지 팁을 공유하려 합니다. 특히 이 글에서 많은 비중을 차지하는 명명법에 관련된 팁은 당신의 코드를 훨씬 읽기 쉽게 만들어 줄 것입니다. 프로젝트를 진행할 땐 파이썬 생태계에서 널리 쓰이고 있는 PEP8을 따르는 것이 좋지만, 전 PEP8 외에도 Django 개발자를 위한 Django's Coding Style 또한 선호합니다. 우리가 살펴볼 항목들은 이렇습니다. Model 이름 짓기 Model 정렬 역관계 Blank와 Null 필드 Model 이름 짓기 모델은 클래스로 정의되므로 항상 CapWords를 사용해야 합니다.(_ 없이) User, Permission, ContentTy..
클라이언트는 url 주소를 통해 서버에 request를 보내고, Django는 urls.py를 참고하여 해당 url에 매핑된 뷰를 찾아 실행한다. 이때 실행되는 뷰의 종류에는 클래스 기반 뷰(class-based view)와 함수 기반 뷰(function-based view)가 있다. 클래스 기반 뷰(Class-Based Views) 클래스 기반 뷰이든 함수 기반 뷰이든 뷰가 실행하는 것은 함수이다. 우리가 View.as_view() 클래스 메소드를 사용하여 URL 정의에 뷰를 추가하면 이는 view라는 함수를 리턴한다. as_view() 메소드가 어떻게 짜여 있는지 보자.(생략되지 않은 코드는 깃허브에서)class View: @classonlymethod def as_view(cls, **initkwa..
사이트에서 Get 방식으로 가져오는 API 하나가 1.5초 정도로 너무 오래 걸린다 싶었는데 django-debug-toolbar(공식문서)의 SQL탭을 보니 쿼리를 150번 정도 돌리고 있었다.그렇게 복잡한 API도 아니었는데 이렇게 쿼리를 많이 돌리는 이유를 보니, - serializer에서 다른 테이블을 참조- for loop로 QuerySet을 돌림 이 중 두 번째, for loop로 QuerySet을 돌리는 실수가 가장 치명적이었다.심지어 for loop 아래의 for loop에서까지 돌리고 있었다.쿼리 1-10개 정도야 반짝하고 가져오지만 100개가 넘어가면... 그래서 for loop 아래에서 Model.objects.filter(..) 등으로 QuerySet을 가져오는 부분을 모두 바깥으로..
api.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'User.groups'.HINT: Add or change a related_name argument to the definition for 'User.groups' or 'User.groups'.api.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'User.user_permissions'.HINT: Add or change a related_name argument..
Django ORM(Object Relational Mapping) # 개요Object-Relational Mapping(ORM)은 관계형 데이터베이스와 Django 모델 객체 간의 매핑을 제공하는 매우 유용한 기술이다.Django를 처음 써보는, 혹 아직 써보지 않은 사람들에게는 이 개념이 잘 와닿지 않을 수 있는데, 한 마디로 SQL문을 사용하지 않고도 데이터베이스를 관리할 수 있게 해준다는 거다. 예를 들어, 데이터베이스에 'person'이라는 테이블을 생성하기 위해 다음 SQL문을 짰었다면,CREATE TABLE person ( "id" serial NOT NULL PRIMARY KEY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NO..
drf-trackinghttps://github.com/aschn/drf-tracking # 설치drf-tracking 설치$ pip install drf-trackingsettings.py의 INSTALLED_APPS에 'rest_framework_tracking' 추가그리고 APIRequestLog 모델 생성 위해 마이그레이션 실행$ python manage.py migrate # 사용view가 실행될 때마다 APIRequestLog 인스턴스를 생성하기 위해, views.py에 rest_framework_tracking.mixins.LoggingMixin 추가한다.request를 로깅하고 싶은 클래스에 LoggingMixin를 넣어주면 된다.# views.py from rest_framework im..
이 문서는 How to Reset Migrations를 번역한 것입니다. Django 마이그레이션 시스템은 많은 수의 마이그레이션들을 작업하는 데에 최적화되어 있습니다. 따라서 일반적인 경우, 당신은 코드상에서 많은 양의 모델 마이그레이션을 신경쓸 필요가 없습니다.물론 이는 때때로, 테스트를 돌리는 데에 많은 시간을 소요하는 등 원하지 않는 결과를 초래하긴 하죠. 하지만 이 경우 당신은 마이그레이션을 간단하게 비활성화시킬 수 있습니다.(비록 지금은 내장 옵션이 없지만요.) 아무튼, 당신이 마이그레이션을 초기화하길 바란다면 이 튜토리얼에 제시된 몇 가지 옵션들을 참고하길 바랍니다. 시나리오 1- 프로젝트가 아직 개발 환경에 남아있고, 이것을 전부 초기화하길 바랄 경우- 데이터베이스를 전부 날려도 되는 경우..
"지메일을 사용한다는 가정 하에" settings.py EMAIL_HOST = "smtp.gmail.com" EMAIL_PORT = 587 EMAIL_HOST_USER = "myaccount@gmail.com" EMAIL_HOST_PASSWORD = "mypassword" EMAIL_USE_TLS = True 그리고 실행파일.py from django.core.mail.message import EmailMessage def send_email(): subject = "메시지" to = ['aaa@bbb.com'] from_email = 'myaccount@gmail.com' message = "메시지를 성공적으로 전송" EmailMessage(subject=subject, body=message, to..
Django의 virtual environment는 편리한 동시에 골치를 많이 썩인다. 필요한 패키지들을 받을 때, 대부분 잘 받아지긴 하나, 거지같은 윈도우에서는 몇몇 패키지를 받을 때 가끔 오류가 일어난다.(나는 numpy+mkl 이 그랬다.) 이럴 땐 파이썬 윈도우 확장 패키지인 .whl 을 직접 pip install 해주는 게 편리하다.http://www.lfd.uci.edu/~gohlke/pythonlibs/ 1) 일단 내가 로컬에 만든 virtual environment 폴더의 Script 폴더로 들어가 cmd를 켠다. 2) pip install .....whl ㄲㅡㅌ 근데 가끔 pip을 업그레이드하라며 whl이 안 받아질 경우가 있다. 이럴 땐, python -m pip install --u..