Django How to delete superuser

Create Django Superuser $ python manage.py createsuperuser Delete Django Superuser (venv) $ python manage.py shell Python 3.7.6 (default, Jan 8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from django.contrib.auth import get_user_model >>> >>> User = get_user_model() >>> User.objects.get(usern..

Django Parsing Json in Function based view

Django를 사용해서 RESTful API를 만들 일이 많아졌는데, 이 때 function based view에서 어떻게 하면 자동으로 JSON 형식의 데이터를 파싱하고 Swagger(drf-yasg)에 API화 할 수 있는지 포스팅하려고 한다. settings.py REST_FRAMEWORK = { 'DEFAULT_PARSER_CLASSES': [ 'rest_framework.parsers.JSONParser', ] } app/views.py from django.http import JsonResponse from rest_framework.parsers import JSONParser from rest_framework.decorators import api_view, parser_classes ..

Django Customizing Default User Model

장고를 사용하다보면 User Model에 새로운 정보를 추가해야 할 상황이 생긴다. 가장 쉽고 간편한 방법은 ProxyModel을 만드는 것이지만, 굳이 그렇게 하고 싶지 않은 상황이 올 수 밖에 없다. 최근 이러한 경우가 생겨서 관련 내용을 포스팅해보려고 한다. User/models.py # coding: utf-8 from django.db import models from django.contrib.auth.models import AbstractUser, UserManager as BaseUserManager from django.core.exceptions import ObjectDoesNotExist from django.db.utils import IntegrityError class Use..

Python3 requests에서 r.text와 r.content의 차이

1. 개요 Python3에서 불과 3~4년 전만 하더라도 urlib를 사용하여 HTTP 자원에 접근하는 코드가 많았지만, 이제는 거의다 requests 모듈을 사용하는 추세이다. 그만큼 requests 모듈의 편리성과 확장성이 Pythonic하다고 볼 수 있다. requests 모듈에서 HTTP Response에 접근하는 방법은 크게 두가지가 있다. 하나는 r.text이고 하나는 r.content이다. ※ 이 글에서 설명하는 내용은 다음과 같은 코드가 실행된 상태라고 가정한다. import requests url = 'https://www.example.com/' r = requests.get(url) 2. r.text r.text의 경우엔 HTTP Request를 보낸 URL에서 readable한 내용..

Django에서 Python Decorator 사용하기

데코레이터를 사용하면 여러줄의 코드를 여러번 작성할 필요없이 한줄만으로 특정한 메커니즘을 실행할 수 있다. from django.http import HttpResponse def only_admin(f): def check(request, *args, **kwargs): try: if request.user.admin is not True: return JsonResponse({ 'status': False, 'message': 'admin permission is required' }) except: return JsonResponse({ 'status': False, 'message': '\'sign in\' is required' }) return f(request, *args, **kwargs)..

백준 1018번 체스판 다시 칠하기 write-up

#!/usr/bin/env python3 # coding: utf-8 def set_plate(): n, m = map(int, input().split()) plate = [] for i in range(n): row = list(input()) plate.append(row) return n, m, plate def get_repaint(plate): result = [] row = [ ['W', 'B'] * 4, ['B', 'W'] * 4 ] for i in range(2): repaint = 0 for j in range(8): check = row[(i + j) % 2] for k in range(8): if plate[j][k] != check[k]: repaint += 1 result.app..

파이썬 가비지컬렉션

보통 C언어로 코딩할 때는 가비지컬렉션이 구현되어 있지 않아서 프로그래머가 직접 가비지컬렉션 기능을 사용하거나, 가비지컬렉션이 구현된 헤더파일을 include 하는 방식을 사용하는데 파이썬에서는 인터프리터단에서 자동으로 이 기능을 지원한다. 이 때 쓰이는 개념이 '레퍼런스 카운트'다. 레퍼런스 카운트란 말 그대로 '참조 수'인데, 다음과 같은 예시로 쉽게 이해할 수 있다. >>> var1 = [1,2,3] # Reference Count = 1 >>> var2 = var1 # Reference Count = 2 >>> var1 = 'python' # Reference Count = 1 >>> var2 = 1.0 # Reference Count = 0 주석으로 달아놓은 Reference Count는 [1,..

ImportError: No module named yaml

ch4n3@ch4n3-VirtualBox:~/tplmap$ pip install pyyamlCollecting pyyaml Downloading PyYAML-3.12.tar.gz (253kB) 100% |████████████████████████████████| 256kB 718kB/s Building wheels for collected packages: pyyaml Running setup.py bdist_wheel for pyyaml ... done Stored in directory: /home/ch4n3/.cache/pip/wheels/2c/f7/79/13f3a12cd723892437c0cfbde1230ab4d82947ff7b3839a4fcSuccessfully built pyyamlInsta..

python Flask 입력받은 커맨드를 실행해주는 어플리케이션

연습삼아 만든 Flask 웹 어플리케이션 #!/usr/bin/python # coding: utf-8 import commands from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): body = """the Site for running your command""" return body @app.route('/command/') @app.route('/command/') def command(cmd=None): if cmd != None: output = commands.getstatusoutput(cmd)[1] return output else : return "Please input you..