장고 앱을 개발하다가 하나의 앱에 View 수가 많아져서 C 계열 언어처럼 전처리기로
#pragma region ~ endregion
으로 뷰를 한방에 묶어서 접어두고 싶었다.

그래서 시작한 폭풍 구글링.
근데 파이썬은 부모만 C계열 언어지, 전처리기는 사용할 수 없다는 안타까운 소식을 접했고...

꿩 대신 닭이다, 이가 없으면 잇몸으로라도 하자는 마음에 VSCode 확장프로그램 탭을 열고, region이라고 검색해봤다.

https://marketplace.visualstudio.com/items?itemName=maptz.regionfolder

 

#region folding for VS Code - Visual Studio Marketplace

OverviewQ & ARating & Review Visual Studio Code Custom Folding Extension This extension enhances the default code folding abilities of Visual Studio Code editor. Regions of code that you'd like to be folded can be wrapped with #region comments. The precise

marketplace.visualstudio.com

얄루! 마침 파이썬의 주석과 같은 #을 사용한다.

다른 언어에서는 주석처리를 한 후 #region을 써주어야 한다.

 

접기 전 (좌) , 접은 후 (우)

요렇게 지저분했던 녀석들이 우측처럼 다 접혀 들어갔다.

 

끝!

Github repository: https://github.com/maptz/Maptz.VSCode.Extensions.customfolding

로그인/회원등록 구현 과정 중 여태 영어만 집어넣다가 superuser 생성 시 이름으로 '최고 관리자'를 넣어줬다.

def create_superuser(self, admin_id, password): # 최고관리자 생성
        user = self.create_user(
            admin_id=admin_id,
            admin_level=True,
            admin_parent=0,
            admin_name='최고 관리자',
            
        )

 

그리고 manage.py createsuperuser를 실행했는데, 다음과 같은 오류가 발생했다.

django.db.utils.OperationalError: (1366, "Incorrect string value:
'\\xEC\\xB5\\x9C\\xEA\\xB3\\xA0...' for column 'admin_name' at row 1")

 

아..인코딩..

MYSQL 클라이언트로 접속 후 

 

mysql > show variables like 'c%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
| check_proxy_users        | OFF                        |
| collation_connection     | utf8_general_ci            |
| collation_database       | latin1_swedish_ci          |
| collation_server         | latin1_swedish_ci          |
| completion_type          | NO_CHAIN                   |
| concurrent_insert        | AUTO                       |
| connect_timeout          | 10                         |
| core_file                | OFF                        |
+--------------------------+----------------------------+

전부 utf8인데 이 database의 charset만 latin으로 되어있었다.

mysql > ALTER SCHEMA `App`  DEFAULT CHARACTER SET utf8;

이 스키마의 캐릭터셋을 utf8로 바꿔준다.

그리고 다시 manage.py createsuperuser를 실행해봤지만..

너 대체 나한테 왜그러니?

또 안된다...

혹시나 하고 models.py로 가서,

def create_superuser(self, admin_id, password): # 최고관리자 생성
        user = self.create_user(
            admin_id=admin_id,
            admin_level=True,
            admin_parent=0,
            admin_name='최고 관리자'.encode('utf8'),
        )

string.encode 속성을 강제로 넣어줬다.

makemigration, migrate 하고 createsuperuser 재시도

 

좋아 완벽했어.

+ Recent posts