본문 바로가기

멀티캠퍼스 프로젝트형 AI 서비스 개발 5회차/WEB

2/11 금

728x90

😎 이야아아아 불금!! 😎

 

프런트엔드 끝내고, 백엔드로 넘어갑니다.

Python으로 만들어진 Web Application Framework, Django!

 

WSGI(Web Server Gateway Interface) : Web서버가 받은 호출을 Python 애플리케이션에게 전달하고 응답받기 위한 호출 조약(Calling Convention)

 

Private Physical Server 위의 녹색 선으로 그려진 모든 것들을 합쳐서 WAS(Web Application Server)라고 부름
Application을 담을 Web Server라고 생각하면 이해가 쉬움
그리고 파란색으로 칠해진 WSGI module과 WSGI Process를 합쳐서 WSGI middleware라고 부름
하나로 구성된 것이 아니라 일부는 Nginx에 내장되어있고 일부는 프로세스로 띄워진 형태
WSGI middleware는 Web 서버와 application을 연결시켜줌
WSGI module과 WSGI Process는 WSGI 전용 프로토콜로 정보를 주고받음

출처 https://velog.io/@misun9283/WSGI-%EB%9E%80

다른 언어에서는 전체 프로그램을 Web Application이라 하나, Python에서는 Project라 지칭하고 그 안에 포함된 모듈화 된 기능들을 Application이라 함

 

Django는 패턴화된 program을 해야 함

출처 https://ehclub.co.kr/3446

Design Pattern : 가장 대표적인 Pattern은 정해져 있음. MVC(Model View Controller). Model이 Database를 처리하고 View가 Interface(HTML·CSS·JS), Controller가 Logic을 처리함

Django는 MVC Pattern의 변형인 MVT Pattern을 이용함. Model이 Database를 처리하고 View가 Logic, Template가 Interface(HTML·CSS·JS)을 처리함

 

Model은 DB 처리를 담당함. Python code 안에서 SQL 구문을 이용해서 처리하는 방법이 있으나, ORM(Object Relation Mapping)을 이용해 처리함. 여기서 Object는 Python 객체, Ralation은 DB Table을 지칭함

 

<Django 설치 및 MySQL 연동>

1. Anaconda Prompt(base)로 Django 설치 후 열기

conda install django             // Django 설치
cd ..
cd ..                            // C drive로 나가기
cd python-django                 // 새로 생성한 폴더로 진입 (탐색기로 직접 생성)
django-admin startproject mysite // mysite라는 이름의 project 생성
// 탐색기에서 python-django 폴더 내의 mysite 폴더 이름을 MyFirstWeb로 변경

2. Pycharm으로 MyFirstWeb 경로 찾아 열고, 설정에서 Terminal은 powershell이 아닌 cmd로 바꿈

Terminal을 cmd로 변경
MyFirstWeb이라는 새로운 가상환경 생성(파이썬 버전은 3.8로!)

3. 새로운 가상환경(MyFirstWeb)에서 Terminal을 열어 Django 설치

conda install django            // 새로운 가상환경(MyFirstWeb)에 Django 설치
python manage.py startapp polls // polls라는 애플리케이션 생성

4. settings.py의 ALLOWED_HOSTS 값을 호스트로 넣어주기

ALLOWED_HOSTS 값을 호스트로 넣어주기
전에 생성했던 polls라는 앱 경로

5. settings.py에 polls app 경로 추가

polls app 경로 추가

6. settings.py의 TIME_ZONE 설정 변경

TIME_ZONE 설정 변경

Django는 기본적으로 DB의 특정 Table을 가지고 시작해야 함

하지만 우리는 MySQL을 사용할 것이기 때문에 터미널 명령어로 DB가 생성되는 것만 보고 파일(db.sqlite3)을 지우자!

python manage.py migrate // DB 생성

7. MySQL Workbench를 열어서 root 계정으로 진입한 후에 쿼리 탭에서 DB를 생성

CREATE DATABASE mysite_db;

8. Pycharm에서 settings.py의 DB 경로를 MySQL로 잡기

DB 경로를 MySQL로 잡기

9. Pycharm Terminal에서 MySQL 연동할 수 있는 설정하기

pip install mysqlclient  // MySQL Client 설치
python manage.py migrate // MySQL 내에 DB Table 생성

10. MySQL Workbench에서 DB Table 생성됐는지 확인

DB Table 확인

11. Pycharm Terminal에서 우리 Project에 관리자 계정을 생성 (Django는 기본적으로 admin page를 제공함)

(MyFirstWeb) C:\python-django\MyFirstWeb>python manage.py createsuperuser
Username (leave blank to use 'ljy99'): ljy9969
Email address: qqyun15@naver.com
Password: 
Password (again):
Superuser created successfully.

12. MySQL Workbench에서 관리자 계정 생성됐는지 확인

MySQL 관리자 계정 확인

13. Django에 내장된 Web Server를 이용해 우리 Project를 Web에 전개(deploy)하기
Pycharm Terminal에 명령어를 입력하고 생성된 URL 누르면 Chrome 열림. Ctrl+c는 서버 닫기

python manage.py runserver

14. Chrome에서 admin page에 접속하여 생성한 관리자 계정으로 진입

Admin Page http://127.0.0.1:8000/admin/

 

1. 1/17 월 2. 1/18 화 3. 1/19 수 4. 1/20 목 5. 1/21 금
취업 특강 파이썬
환경 설정

(파이참, 아나콘다, 주피터 노트북)
파이썬
데이터 타입

(list, tuple)
파이썬
데이터 타입

(range, string, dictionary, set, bool)
파이썬
사용자 정의 함수,

객체지향,
사용자 정의 클래스
6. 1/24 월 7. 1/25 화 8. 1/26 수 9. 1/27 목 10. 1/28 금
파이썬
사용자 정의 클래스,

사용자 정의 모듈
DB(MySQL)
DBMS,

MySQL 환경 설정,
DB/테이블 생성,
DB 입력·활용,
Index
DB(MySQL)
View,

백업과 복원,
DB 모델링,
관계(PK, FK),
DML(CRUD),
데이터 타입

DB(MySQL)
DML(CRUD),

WHERE 조건,
패턴 매칭,
SubQuery,
정렬,
그룹핑,
집계 함수,
트랜잭션(ACID 특성)
DB(MySQL)
JOIN,

UNION,
NOT IN,
WEB
11. 2/3 목 12. 2/4 금 13. 2/7 월 14. 2/8 화 15. 2/9 수
WEB
WebStorm 환경 설정,

HTML,
CSS,
JavaScript,
jQuery CDN
WEB
jQuery 문법,

Selector,
Method
WEB
jQuery Method,

Event,
AJAX
GitHub 특강
소스코드 관리,

Fork, Clone, Branch,
Commit,
Push, Pull-Request,
Rebase
GitHub 특강
프로젝트 관리,
Fetch, Rebase,
Merge,
Conflict
16. 2/10 목 17. 2/11 금 18. 2/14 월 19. 2/15 화 20. 2/16 수
WEB
jQuery AJAX,
Bootstrap,
Open API
Django
WSGI,
MVC, MVT,
ORM
Django

   

* 처음에 환경설정을 제대로 해놓자!

728x90

'멀티캠퍼스 프로젝트형 AI 서비스 개발 5회차 > WEB' 카테고리의 다른 글

2/15 화  (0) 2022.02.15
2/14 월  (0) 2022.02.14
2/10 목  (0) 2022.02.10
2/9 수  (0) 2022.02.09
2/8 화  (0) 2022.02.08