[코테 합격자되기] 04코테 필수 문법
·
PS/[코테 합격자 되기]
a/b, a//b   #소수점나누기, 몫나누기abs()   #절댓값a**b   #a의 b승 부동소수형 주의.엡실론  뮤터블 객체(변경가능한 객체) 이뮤터블 객체(변경불가한 객체)리스트, 딕셔너리, 셋정수, 부동소수점, 문자열, 튜플 del my_list[2]    #인덱스 2의 데이터 삭제 my_list[0:2]      #my_list 인덱스0부터 1까지의 데이터만 슬라이싱 my_list[-4:-2]   #my_list 인덱스 뒤에서 4번째부터 3번째까지의 데이터만 슬라이싱 딕셔너리는 키, 밸류튜플은 삽입,삭제는 안되지만 인덱싱, 슬라이싱은 가능함.   #값이 안바뀌는 것만 리스트와 달라 실수 방지용으로 사용 string = "He"string += "llo"print(string)    #:"Hell..
[코테 합격자되기] 00코테를 준비하기전에 ~ 03알고리즘의 효율 분석 정리
·
PS/[코테 합격자 되기]
코드를 작성하기전 여러가지의 예외 테스트 케이스를 추가하라.  문제를 못풀어도 사고과정을 기록하라.시험 보듯 공부하라문제를 이해한 뒤에는 나만의 언어로 요약하라  전체시간의 50~60%는 문제 분석에 시간을 쓰는 것이 좋다1. 문제를 동작 단위로 쪼개서 분석하라(한번에 분석하면 복잡하고 쪼개서 분석하면 유연해진다)2. 제약사항을 파악하고 테스트 케이스를 추가하라3. 입력값을 분석하라.(입력값의 크기가 크다면 특정 시간복잡도의 알고리즘은 사용 불가해진다)4. 핵심 키워드를 파악하라.(EX. '최적의 해'라는 키워드 -> 너비 우선 탐색)5. 데이터 흐름이나 구성을 파악하라(데이터 삽입 삭제가 빈번하면 힙, 데이터가 50개미만이고 입력값을 깔끔하게 정리하기 어려우면 하드코딩 등)  의사코드를 먼저 설계하라 ..
[점프 투 플라스크] 질문등록 & 폼모듈
·
웹개발/[점프 투 플라스크]
폼 모듈 설치; pip install flask-wtf CSRF토큰 생성; CSRF공격을 막기위한 토큰. 폼으로 전송된 데이터가 실제 웹페이지에서 작성된 데이터인지 판별config.py에 SECRET_KEY 변수 추가. 질문 등록질문 등록 버튼 만들기question_list.html 일부a href="{{ url_for('question.create') }}" class="btn btn-primary">질문 등록하기a> 질문,답변 폼 만들기forms.py 전체from flask_wtf import FlaskFormfrom wtforms import StringField, TextAreaFieldfrom wtforms.validators import Da..
[점프 투 플라스크] 부트스트랩으로 화면 꾸미기 & 템플릿 상속 with 표준HTML
·
웹개발/[점프 투 플라스크]
부트스트랩 개발자 혼자서도 화면을 괜찮은 수준으로 만들게 해주는 도구 트위터를 개발하면서 만들어졌고 지속적으로 관리되고 있는 오픈소스 프로젝트임. CSS를 파이보에 적용하려면 CSS파일이 pybo/static 디렉토리에 있어야함. 플라스크에서 CSS파일을 정적(static)파일로 분류하기 때문. static디렉토리에 설치한 부트스트랩을 카피. pybo\static\bootstrap.min.css 이 부트스트랩css를 실제로 적용하려면 질문 목록, 질문 상세에 부트스트랩을 적용해야함. 파일 최상단에 다음과 같은 코드를 추가하면 됨. stylesheet의 형식으로 static디렉토리의 style.css파일을 연결한다는 의미임. url_for함수는 라우팅함수의 url뿐만 아니라, 정적파일의 url도 찾아줌. ..
[점프 투 플라스크] 답변 등록 기능 만들기
·
웹개발/[점프 투 플라스크]
답변 등록 버튼 만들기 question_detail.html 일부 answer별칭의 create의 라우팅함수의 url을 form태그의 action속성으로 지정. "답변등록" 버튼누르면 POST방식으로 이 url이 호출(submit)될 것임. question_id라는 데이터도 함께. [참고]GET vs POST ; 계속 햇갈리니까 정리하자 GET방식: db에 내용등록 절차 없이 해당 페이지 그냥 호출 POST방식: 내용 입력한다음에 db에 등록하고 새로운 페이지 호출 답변 블루프린트 만들기 answer_views.py 일부 @bp.route('/create/', methods=('POST',)) def create(question_id): question = Question.query.get_or_404(..
[점프 투 플라스크] 질문 목록, 질문 상세 기능 만들기 및 블루프린트로 기능 분리하기 & url_for
·
웹개발/[점프 투 플라스크]
질문 목록, 상세기능 만들기 with Blueprint question_views.py 일부 bp = Blueprint('question', __name__, url_prefix='/question') @bp.route('/list') def _list(): question_list = Question.query.order_by(Question.create_date.desc()) return render_template('question/question_list.html', question_list=question_list) @bp.route('/detail//') def detail(question_id): question = Question.query.get_or_404(question_id) ret..
[점프 투 플라스크] 모델(ORM 클래스)로 데이터 처리하기.
·
웹개발/[점프 투 플라스크]
ORM(Object Relational Mapping) 데이터베이스에, 데이터를 저장하는 테이블을 파이썬 클래스로 만들어 관리하는 기술 [ORM을 이용한 새 데이터 삽입 예] question1 = Question(subject=’안녕하세요’, content='가입 인사드립니다 ^^') 코드에서 Question은 파이썬 클래스이며, 이처럼 데이터를 관리하는데 사용하는 ORM클래스를 "모델"이라고 한다. 모델을 사용하려면, ORM 라이브러리를 설치해야함. 이는 교재(2-04)를 확인하자. ORM적용 to create_app함수 밖에 db = SQLAlchemy() //객체 생성 migrate = Migrate() //이렇게 해야 db객체를 다른 모듈(다른 파일)에서 사용가능. create_app함수 안에 d..
[점프 투 플라스크] 블루프린트
·
웹개발/[점프 투 플라스크]
블루프린트 사용목적: 라우팅 함수를 체계적으로 관리하기 위함. def create_app(): app = Flask(__name__) @app.route('/') def hello_pybo(): return 'Hello, Pybo!' return app 위와 같은 방식으로 코드를 짜면 새로운 URL매핑이 필요할 때마다(웹사이트에 새로운 페이지를 추가할 때마다) 라우팅함수를 create_app함수에 계속 해야함. 즉, create_app함수가 크고 복잡해져서 가독성이 떨어짐. 이 때 블루 프린트를 사용해, create_app함수의 가독성을 좋게 만드는 것임. bp = Blueprint('main', __name__, url_prefix='/') @bp.route('/') def hello_pybo(): r..
2soon2soon
준범's CS