Python 14
-
admin 페이지가 아니라 html에서 바로 커피를 입력받아 DB에 저장하기 위해서 forms.py를 만든다. 메타 클래스를 상속받고 모델 폼즈를 상속받는 클래스와 입력받을 인자들을 필드에 넣는다. views에서는 폼의 커피폼 모델을 import하고 폼을 인자로 html문서로 전달한다. html 문서에서 커피 폼을 폼 인자로 감싸고 save 버튼과 함께 만들었다. 하지만 이 상태에서는 오류가 발생한다. form에서 반드시 보안상의 이슈로 post를 하는 경우 csrl로 보안 규칙을 정해야 한다. 마지막으로 폼이 유효한 결과를 가지고 있고, request.method가 POST인 경우 폼을 저장한다.
-
-
models에 coffee class를 만든다. 각자의 필드 타입과 변수명을 지정해준다. default 값은 무엇을 기본 값으로 놓는지 알려준다. CharField일때는 반드시 max_length를 통해 문자의 길이를 정해준다. null 값이 false이면 빈 값이 들어오면 안된다. admin 페이지에 coffee를 추가해주면 관리가 가능하다. migration 작업을 cmd 창에서 하고 나야 이 모델을 사용할 수 있다. git에 추가하듯 앱의 마이그레이션을 먼저 만들고 마이그레이트 한다. python manage.py makemigrations homepage python manage.py migrate 요소를 추가하는 것도 가능하지만 Coffees를 눌렀을때 전체 메뉴의 이름이 나오지 않는다. 파이썬..
-
django web을 연습하는 의미로 자기소개 페이지를 만들었다. 부트스트랩으로 양식을 다운받아서 만들었다. from django.shortcuts import render, HttpResponse # Create your views here. def index(request): #return HttpResponse("Hello World") #number = 10 name = "michael" return render(request, 'index.html') view.py index로 응답하는 함수를 만들었다. HttpResponse를 통해 html 페이지를 호출한다. from django.contrib import admin from django.urls import path from homepage..
-
이미 만들어 놓은 프로젝트 webproj에 진입하고, 가상환경을 activate 한다. django-admin startapp homepage 명령어로 homepage라는 앱을 만든다. homepage 폴더가 만들어지고 접속하면 MVT모델에 맞는 스켈레톤 코드가 나와있다. Hello 하는 요청과 응답을 하는 간단한 앱이다. manage.py의 관점에서 views.py는 homepage 폴더 안에 있기 때문에 경로와 함수 index를 import 한다. 반드시 settings의 설치된 앱 목록에 현재 homepage 앱을 추가 해야만 기능이 정상동작된다. python manage.py runserver --noreload 파이썬 3에는 오류가 있어서 실행이 안되기 때문에 다음 명령어로 디버그 후 서버를 실..
-
Flask Flask는 파이썬 마이크로 웹 프레임워크이다. Werkzeug 툴킷, Jinja2 템플릿 엔진을 사용한다. 핀터레스트, 링크드인 등의 결과물들이 있다. 특별한 도구나 라이브러리가 필요 없기 때문에 마이크로 프레임워크라 부른다. 플라스크는 플라스 자체에서 구현된 것처럼 애플리케이션 기능을 추가할 수 있는 확장 기능을 지원한다. 목적에 따른 모듈만 있는 환경 -> 가상환경 Web Internet 통신망 Web - 인터넷의 부분집합, 인터넷에 연결된 사용자들이 정보를 공유하는 공간 Web Page - Web Site의 부분집합 ex) google naver.. Mail - 인터넷의 부분집합, 프로토콜은 웹과 다르다. Client와 Sever의 상호작용 정보 요청 (Request) - Get() P..
-
-
순열 Permutation 리스트 내부에 있는 것들을 순서를 고려해 나열하는 가짓수. 서로 다른 n개 중 r개를 골라 순서를 정해 나열 nPr [A, B, C] 에서 n=3 r=2로 하면 [(A,B) (A,C) (B,A) (B,C) (C,A) (C,B)] 6개가 나온다 from itertools import permutations arr = ['A', 'B', 'C'] permu = itertools.permutations(arr,2) 조합 combination 리스트 내부에 있는 것들을 순서를 고려하지 않고, 나열하는 가짓수. 서로 다른 n개 중 r개를 골라 순서를 정해 나열 nCr [A, B, C] 에서 n=3 r=2로 하면 [(A,B) (A,C) (B,C) ] 6개가 나온다 from itertool..
-
AesRSA 대칭키, 그리고 스테가노그래피를 이용해 그림의 색조 변화를 통해 암호문을 숨기는 보안 프로그램을 개발했다. 처음에 아이디어를 내고 기획하고 모두 동등하게 참여했다. 사용 언어는 Python이고 Spyder와 Qtdesigner라는 툴을 사용해서 만들었다. 다른 팀원들은 Python 기본 툴로 만들었지만 나는 GUI와 파일 입출력, 에러 페이지, 메인소스를 만들고 디자인했기 때문에 Spyder와 Qtdesigner라는 툴을 사용할 수 밖에 없었고, 관련 문서가 별로 없었기 때문에 해외소스를 찾아서 혼자 배웠다. 나중에 팀원들에게 모듈의 에러를 수정하고 통합해 완성본을 전달하고, 툴의 사용법을 팀원들에게 알려줄 때 정말 보람있었다. 컴퓨터 보안 시간에 발표한 내용들을 보면 우리 팀이 가장 완성도..
-
Git에 자신의 Repository를 만들고, PC에 Git을 다운로드 하면 폴더를 우클릭 했을 때 Git Bash가 나온다 클릭한다 우클릭한 폴더 내의 파일들을 Git Repository 원격 저장소에 업로드 해준다 $ git init 로컬 저장소를 만들고 초기화 $ git status 업로드 될 파일(폴더 내의 파일) 확인, 업로드 되면 초록색으로 변한다 $ git add . 모든 파일 업로드 $ git add 파일, 폴더명 . 특정 파일, 폴더 업로드 $ git commit -m "메시지" 원하는 메시지를 업로드한다 steganography 라고 올렸다 $ git remote add origin repository 주소 $ git remote -v 로컬 저장소가 원격 저장소로 연결 깃 주소를 자신의..