본문 바로가기
my_lesson/_Python

Python - Settings Django project debugging & Create model

by boolean 2018. 8. 7.
728x90


Settings Django project debugging

workinDirectory>conda activate conPython37( <--envName)

On conda environment
(conPython37)workinDirectory> pip install pylint
(conPython37)workinDirectory> pip install pylint-django
(conPython37)workinDirectory> pip install requests
(conPython37)workinDirectory> pip install bs4
(conPython37)workinDirectory> django-admin startproject djangoProject
(conPython37)workinDirectory> code djangoProject

On visual studio code 
-> Ctrl + Shift + p 
-> Preferences: Configure Language Specific Settings
->  Python
-> add next comment
"python.linting.pylintArgs": [
        "--load-plugins=pylint_django",
    ],

{
    "vim.disableAnnoyingNeovimMessage": true,
    "git.ignoreMissingGitWarning": true,
    "python.pythonPath": "C:\\ProgramData\\Miniconda3\\envs\\conPython37\\python.exe",
    "files.autoSave": "afterDelay",
    "python.linting.banditEnabled": true,
    "[python]": {
        
    },
    "python.linting.pylintArgs": [
        "--load-plugins=pylint_django"
],
"python.linting.pylintPath": "C:\\ProgramData\\Miniconda3\\envs\\conPython373\\Scripts\\pylint.exe",
    //"python.linting.pylintPath": "C:\\ProgramData\\Miniconda3\\envs\\conPython37\\Scripts\\pylint.exe"
}

PEP8규칙에 따라 문서를 작성한다 (까다롭다: 지키지 않으뎐 경고를 뿜어낸다)
새로운 문서나 문장들 마다 주석을 꼼꼼히 달아야 하며 들여쓰기 띄어쓰기가 정확해야 한다.




지원하는 모델필드 타입

주요 Field Types :
 AutoField, BooleanField, CharField, DateTimeField, FileField, ImageField,TextField
주요 Relation ship Types : 
ForeignKey, ManyToManyField, OneToOneField
주요 Field Option
필드옵션 : 필드마다 고유 옵션이 존재, 공통 적용 옵션도 있음
null (DB 옵션) : DB 필드에 NULL 허용 여부 (디폴트 : False)
unique (DB 옵션) : 유일성 여부 (디폴트 : False)
blank : 입력값 유효성 (validation) 검사 시에 empty 값 허용 여부 (디폴트 : False)
default : 디폴트 값 지정. 값이 지정되지 않았을 때 사용
verbose_name : 필드 레이블. 지정되지 않으면 필드명이 쓰여짐
validators : 입력값 유효성 검사를 수행할 함수를 다수 지정
각 필드마다 고유한 validators 들이 이미 등록되어있기도 함
예 : 이메일만 받기, 최대길이 제한, 최소길이 제한, 최대값 제한, 최소값 제한 등
choices (form widget 용) : select box 소스로 사용
help_text (form widget 용) : 필드 입력 도움말
auto_now_add : Bool, True 인 경우, 레코드 생성시 현재 시간으로 자동 저장

모델필드 타입 예문
title = models.CharField(max_length=100, help_text='최대 100자 내로 입력가능합니다.',
choices=(
('title1', 'title1_label'),
('title2', 'title2_label'),
('title3', 'title3_label'),
))
content = models.TextField(verbose_name='내용')
tags = models.CharField(max_length=100, blank=True)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)

BeautifulSoup4 사용법

soup.select('태그명')
soup.select('.클래스명')
soup.select('상위태그명 > 하위태그명 > 하위태그명')
soup.select('상위태그명.클래스명 > 하위태그명.클래스명')    # 바로 아래의(자식) 태그를 선택시에는 > 기호를 사용
soup.select('상위태그명.클래스명 하~위태그명')              # 아래의(자손) 태그를 선택시에는   띄어쓰기 사용
soup.select('상위태그명 > 바로아래태그명 하~위태그명')     
soup.select('.클래스명')
soup.select('#아이디명')                  # 태그는 여러개에 사용 가능하나 아이디는 한번만 사용 가능함! ==> 선택하기 좋음
soup.select('태그명.클래스명)
soup.select('#아이디명 > 태그명.클래스명)
soup.select('태그명[속성1=값1]')


댓글