티스토리 스킨에서 사용되는 썸네일 Thumbnail 이미지를 다양하게 불러올 수 있는데 경로에 적힌 암호같은 문자 C50x50 R150x150 이런 글자가 먼지 정확하게 알려주는 글이 있어 소개 티스토리 이미지 썸네일 치환자 완벽정리 https://blogpack.tistory.com/167 티스토리 이미지 썸네일 치환자 완벽정리 티스토리 스킨의 커버, 글 목록, 카테고리의 관련 글 등에는 글에 첨부된 메인 이미지의 썸네일이 표시됩니다. 티스토리 공식 사용 가이드, 또는 스킨 가이드에는 명시적으로 설명이 되어있지 blogpack.tistory.com C가로x세로 형식으로 가로, 세로 픽셀 크기를 지정. 지정한 썸네일 크기 영역을 모두 덮는 최소 크기로 리사이즈 한 후(가로, 또는 세로중 한방향은 지정한 ..
Django model 만들때 Foreign key (ForeignKeyField) 로 등록된 필드를 넣을 때 마다 on_delete 옵션을 준다. 이것의 명확한 의미를 알아보자. 구글링을 통해 적합한 내용을 찾아보자. https://tothefullest08.github.io/django/2019/06/10/Django19_relations1_comment_CRUD1/ user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE) models.CASCADE : 부모가 삭제 되면, 자기 자신도 삭제 models.PROTECT : 자식이 존재하면, 부모 삭제 불가능 ( ProtectedError 발생시킴), 다른 필드에 CASCAD..
Django admin에 어렵게 model을 등록해 두었는데, 관리자가 들어가서 자료를 볼때 object(id) 이런식으로 나오니깐 클릭해서 들어가기 전에 이 객체의 정보의 힌트를 볼 수 없어 답답했다. 이를 해결해 보자 아래 그림을 보자. Company Object(id) 이렇게 나오니, 실제 어떤 값이 들어 있는지는 클릭해서 들어가서 자세한 필드 내용을 봐야 안다. 여기 리스트에서 그냥 대충이라도 보고 싶은 욕구가~~~ 아주 쉽게 해결이 되었다. models.py에 선언하면서 __str__(self) 함수를 등록해 두면 되는 것이다. class Company(TimeStampedModel): name = models.CharField(max_length=255) is_deleted = models.I..
Django ninja api 를 쓰려고 하면 항상 Querystring 으로 받아야할 경우가 많이 있다. 매번 따로 정의해서 쓰는 것 보다 공통적인 것은 Schema로 정의해서 쓰고 싶은데, 어떤 때는 값이 있을 때도 있고, 없을 때도 있으니 이 경우를 다 처리하는게 복잡해 보였는데 Schema 와 ninja.Query() 함수로 좀 쉽게 구현해 보자. Django-ninja 공식 사이트에는 이와 관련된 아래와 같은 튜토리얼이 있다. 이를 잘 이해하면 끝! https://django-ninja.rest-framework.com/tutorial/query-params/#using-schema You can also use Schema to encapsulate GET parameters: import d..
장고 ninja api 로 리턴을 해주는 api 작성시에 페이지 정보와 전체 카운터, 이전페이지 다음페이지 유무등의 정보를 넣은 객체가 리턴되었으면 한다. 이때 편하게 할 수 있도록 Schema 상속을 통해 이를 해결해 보자. 매번 Schema 를 작성해야 하는데 공통 분모가 되는 필드들이 많이 있다. 이때 마다 매번 같은 내용을 작성하기 귀찮은데 클래스 추상화로 이를 해결할 수 있다. 그냥 코드를 보자. 페이지 정보와 해당 객체들의 리스트가 포함된 Schema 를 아래와 같이 정의해 본다. 각각 results 에 들어가는 객체들은 매번 바뀌니깐 공통 분모만 PaginatedOutSchema 로 정의해 두고 상속해서 사용하도록 한다. class PaginatedOutSchema(Schema): total..
장고에서 시간대 설정하는 부분을 알아보자. timezone 문제가 있어 헷갈리는데 아래 링크 내용을 그대로 적용해 봤다. https://pythonblog.co.kr/blog/66/ 61 Django 시간대설정 -Time Zone 장고 관리자 화면에서 글을 등록 중 NOw버튼을 누르니 한국시간과 9시간 정도 차이가 있네요. (UTC) 시간 설정은 셋팅 파일에서 할 수 있습니다. pythonblog.co.kr LANGUAGE_CODE = 'ko-kr' #국가 설정 TIME_ZONE = 'Asia/Seoul' #시간대 설정 USE_I18N = True #국제화(Internationalization) USE_L10N = True #지역화(localization) USE_TZ = False #장고 시간대 그런데..
@login_required 데코레이터를 설정해 둔 경우, 실패한 경우 어떤 페이지가 뜨기는 하는데 내가 따로 설정한 적이 없는 것 같은데, 어디서 설정해 주나? 알아보다 보니 settings.py 에 설정 되어 있어서 코드에서 볼 수 없었다. settings.py 에 보면 "LOGIN_URL" 이라는 값을 설정해 둔 곳이 있다. # settings.py ... LOGIN_URL = '/login/' ... @login_required 데코레이터가 실패시 여기 설정된 페이지로 자동으로 이동 시켜 주도록 장고가 설정 되어 있다는 것. 이게 싫은 경우에는 어떻게 해야 하나? 별도의 데코레이터 함수를 따로 작성하면 되는 것은 당연한데 더 편하게 해 주는 것은 없을까? 추후 업데이트 할련다. 로그인 실패 페이지..
Django에서 ninja api를 정의하여 호출하는 경우, 데이터베이스의 중복이나 불일치 등등 DB와 연동하여 판단하는 것 말고 폼 객체에 필드 값이 일단 사전에 올바른지 간단하게 체크하는 것이 필요하다. 보통 이런경우 api에서 처리해도 되지만 Schma를 정의해서 처리하는 방법이 있다. 자체 공부용으로 정리하는 것이므로 두서 없어도 그냥 넘어가주세요. 여기서 정리한 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) ninja api 구현 함수에 보면 아래와 같이 되어 있다. @api_router.post("register", response={201: None, 409: Mess..
Data를 테이블 표현하는 것은 모든 데이터 서비스의 기본이다. 매번 이 부분을 구현하고 검색하고, 페이지네이션에 Export 기능까지 따로따로 하는데 이 모든것이 이미 구현이 되어 있다. Datatable.net 꼭 이 라이브러리를 활용하자. 여기서 정리한 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) DataTable 일단은 한번 보면 안다. 아래 예제 사이트로 가서 봐라 데이터를 표현하는 테이블은 이걸 써야 한다. https://datatables.net/examples/ajax/objects.html 간단하게 Vue.js 를 이용하여 구현한 코드를 보자. Django 에서 ..
Django 미들웨어 중간에 건너뛰고 싶다 혹은 일부 함수는 다르게 적용되고 싶다면 어떻게 적용하는지 알아보자. 여기서 정리한 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) 방식은 데코레이터 함수를 적용해서 구현하는 것이다. 아래와 같이 특정 유저만 들어오도록 하는 데코레이터 함수를 구현해 본다. def admin_only(function): @wraps(function) def wrap(request, *args, **kwargs): is_admin = request.user.is_superuser if is_admin: return function(request, *args, ..
Django 로직을 만들다 보면, 여러가지 쿼리 스트링을 가지고 해야할 일이 많다. 쿼리 스트링에 한글이 들어와 있으면 표현이 이상한 코드들이 막 나오는 것을 볼 수 있다. 이 부분을 변경해서 사용해야 한다. 여기서 정리한 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) 관련 코드는 아래와 같다. @staticmethod def form_data_to_dict(body: bytes): UNLOGGABLES = ["csrfmiddlewaretoken", "password"] body = body.decode("utf-8") body = unquote(body).split("&") rt..
Django Admin tools 가 여러 프로젝트가 존재하고 있다. Admin 페이지와 기능을 위해 이미 완성된 여러 admin tools에 대한 내용을 살짝 경험해 보자 - 이 모든 내용은 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) 일단 현재 Django에서 기본을 제공중인 admin 기능을 사용해 보기 cookbook 페이지가 잘 되어 있다. 먼저 기본 기능을 잘 쓰는 것이 중요하다. https://books.agiliq.com/projects/django-admin-cookbook/en/latest/ Django Admin Cookbook — Django Admin Cookbook ..
Verilog 코딩 중에 첫 번째 줄에 가장 많이 나오는 듯한 timescale 의 의미를 한 번 더 정리해 보자. `timescale 1ns/10ps 앞에 숫자는 작성중인 해당 파일 내에서 쓰이는 숫자들의 단위를 나타냄..즉 #2 이렇게 쓰여있다면 2ns를 나타냄 뒤의 숫자는 시뮬레이터에서 많이 쓰일 것 같은데 코딩에서는 별 효과가..무튼 소수점을 허용하려면 어디까지 해야할까 나타내야 하는데 그 때 쓰이는 최소 단위. 더욱 자세한 설명은 아래글 참고. 원본글이 업데이트가 된지 오래 되어서 여기에 로컬 복사해 둡니다. 저자분께 죄송합니다. [verilog] timescale에 대하여작성자 j0hnch01 [출처] [verilog] timescale에 대하여|작성자 j0hnch01 assign #5 foo..
장고가 느리다는 평가가 많은데, 서비스가 커질 수록 성능에 목숨을 많이 거는 것은 맞다. 이 대단한 Django가 그냥 쳐다보고 있지는 않을 것 같다. 여러가지 cache 기법을 사용해서 속도나 성능을 키워보자. 현재 듣고 있는 장고 강의에 소스에 포함된 내용을 공부할 겸 추려본다 - Django 실전 프로젝트 1 - URL Shortener 서비스 ( 패스트캠퍼스 ) 아래 공식 사이트에서는 여러가지 방법이 소개가 되어 있다. https://docs.djangoproject.com/en/3.2/topics/cache/ Django’s cache framework | Django documentation | Django Django The web framework for perfectionists with..
멜론 TOP100 음악을 다운로드하는 방법, 최신 유행하는 인기가요, 트로트, 최신 국내 가요, 팝송, 발라드, 이전 계절 팝송 모음 등의 mp3 파일을 다운로드 하거나 노래를 감상하려면 여러가지 방법이 있다. 유튜브, 토렌트, 멜론, 지니 가입하기 등등등. 그런데 가입없이 간단하게 다운로드 할 수 있는 방법 몇개를 알아보자. 멜론 TOP100 이나 지니 음악을 다운로드하는 방법 중 가장 쉬운 방법은 그냥 노래 음악 파일을 로컬 PC에 다운로드 하지 말고 실시간으로 유튜브 멜론 소리바다 와 같이 음악 스트리밍 서비스를 유료로 가입하여 자유롭게 이용하여 감상 하는 것이 가장 편하고 자연스런 방법이다. 당연하게도 멜론 같은 유료 음악 스트리밍 서비스나 유튜브 프리미엄으로 가입해서 들으면 가장 편하게 최신가요..