Python
-
100명의 죄수 문제Python/이것저것 파이썬 2022. 10. 17. 12:38
https://www.youtube.com/watch?v=PE4vLbyOgw0 https://www.youtube.com/watch?v=OIi7FCmTtxc from random import shuffle def find_num(): # 죄수 번호가 들어갈 박스 boxes = {} # 죄수 번호(1~100)를 셔플. nums = [i for i in range(1, 101)] shuffle(nums) # 셔플된 죄수 번호를 하나씩 뽑아 박스에 넣는다. for i, num in enumerate(nums): boxes[i + 1] = num # 각 죄수가 방에 들어가 자신의 번호가 매겨진 박스부터 열어본다. for prisoner in range(1, 101): open_num = prisoner for ..
-
파이썬으로 버전 비교Python/이것저것 파이썬 2022. 10. 6. 13:02
버전을 비교하려면, 어떻게 하는 것이 깔끔할까요? '1.9.1' > '1.10' # True 버전은 숫자와 점으로 구성된 문자열입니다. 이런 코드가 떠오릅니다만.. import doctest def to_int_tuple(a: str) -> tuple[int]: return tuple(int(each) for each in a.split('.')) def compare(a: str, b: str) -> str: """ >>> compare('1.19', '1.10.1') '>' >>> compare('1.1', '1.10.1') '' """ a_tuple, b_tuple = to_int_tuple(a), to_int_tuple(b) if a_tuple == b_tuple: return '==' elif ..
-
django, allauth, socialaccount_set, kakao login, extra_dataPython/초간단 장고 Django 2022. 9. 23. 11:04
{% with account=user.socialaccount_set.first %} UID: {{ account.uid }} nickname: {{ account.extra_data.properties.nickname }} email: {{ account.extra_data.kakao_account.email }} age_range: {{ account.extra_data.kakao_account.age_range }} birthday: {{ account.extra_data.kakao_account.birthday }} birthday_type: {{ account.extra_data.kakao_account.birthday_type }} gender: {{ account.extra_data.kaka..
-
[장고] 그룹, 퍼미션Python/초간단 장고 Django 2022. 9. 22. 23:11
1. 장고에서 그룹을 설정과 권한 관리는 관리자 화면에서 가능하다. 2. 템플릿에서 권한 체크하는 법. Check permission inside a template in Django https://stackoverflow.com/questions/9469590/check-permission-inside-a-template-in-django # {% if perms.app_label.can_do_something %} {% if perms.account.add_email_address %} {% endif %} 관리자 화면에서 권한명을 확인. 공식 문서를 참고하자. https://docs.djangoproject.com/en/4.1/topics/auth/default/#permissions 3. 뷰 함수..
-
Django pagenation paginator.num_pagesPython/초간단 장고 Django 2022. 9. 21. 00:21
Django의 페이지네이션 기능의 자세한 설명은 다음을 참고하시고.. https://wikidocs.net/71240#_2 3-02 페이징 * `[완성 소스]` : [github.com/pahkey/jump2django/tree/3-02](https://github.com/pahkey/jump2django/tr ... wikidocs.net 저자께서 마지막에 이런 숙제를 남겨두셨네요. 지금까지 만든 페이징 기능에 '처음'과 '마지막' 링크를 추가하고 ... def list_view(request): page = request.GET.get('page', '1') px_name = request.GET.get('name', '') if name == '' or name is None: my_list = M..
-
파이썬으로 WOL 매직패킷 쏘기Python/이것저것 파이썬 2022. 9. 16. 08:13
import socket import struct ip = '192.168.0.255' mac = '00-11-22-33-44-55' mac_split = mac.split('-') address = struct.pack( 'BBBBBB', int(mac_split[0], 16), int(mac_split[1], 16), int(mac_split[2], 16), int(mac_split[3], 16), int(mac_split[4], 16), int(mac_split[5], 16), ) magic = b'\xFF' * 6 + address * 16 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock.setsockopt(socket.SOL_SOCKE..
-
[django] shell을 더 편하게 쓰는 법, 장고 ORM을 shell 외에서 사용Python/초간단 장고 Django 2022. 9. 12. 10:27
장고 쉘을 더 편하게 쓰는 법.. 1. ipython을 설치한다. 파이썬 유저라면 다들 노트북을 써보셨을 겁니다. IDE만큼 편하진 않지만.. 맨땅의 헤딩보다는 엄청 편리하죠... 2. 장고 ORM을 shell 외에서 사용 개발 환경 설정에 따라 다르겠습니다만 manage.py 가 있는 디렉토리에서 스크립트를 작성, 실행하는 것이 편할 겁니다. 개별 앱에 관련된 코드를 루트에 두는 게 불편합니다만... 장고 셋업을 한 뒤에야 모델을 import 할 수 있습니다. DB 초기화를 할 때, preset 데이터를 입력할 때, 사용하면 편합니다. import csv import os import django os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.set..
-
[django] RedirectView, redirect in urls.pyPython/초간단 장고 Django 2022. 9. 9. 00:42
board.urls을 2번 인클루드하면 경고가 발생합니다. from django.contrib import admin from django.urls import path, include urlpatterns = [ path('', include('board.urls')), path('board/', include('board.urls')), path('admin/', admin.site.urls), ] WARNINGS: ?: (urls.W005) URL namespace 'board' isn't unique. You may not be able to reverse all URLs in this namespace 이 상황에서 redirect를 만나면 라우팅이 엉망이 되죠. 그땐 경고가 아닌 에러가 발생합니..