wecode TIL day 11 (Oct 29)

Jae Hoon Shin, 신재훈, Noah·2020년 10월 29일
1

장고의 개념을 좀 더 탑재하기 위해 리서치를 좀 더 했다.
출처:https://www.youtube.com/watch?v=Nv_9uZ4ld9U

출처: https://www.youtube.com/watchv=Cph0s6dT0Ik&feature=youtu.be
위 영상 개념쌓기 좋다.

장고 Django🦠

웹 프로그래밍 -> 홈페이지 만들기, 웹 서비스 만들기

-Frontend:화면(웹 브라우져에서 동작하는 코드 -> HTML, CSS, JS
-Backend:서버 (데이터를 입출력하거나, 계산을 하거나하는 서버에서 동작하는 코드)
->컴퓨터에서 동작하는 언어 (python, ruby, java, php, js , C#)

HTTP🧾

-웹사이트 동작 방식
1. 웹 브라우저 주소창에 URL입력 후 엔터
2. URL을 이용해서 서버의 IP를 찾는다.
3. IP를 이용해서 서버에 접속
4. URL에 해당하는 자료를 요청
5. 웹 어플리케이션이 URL을 해석해서 해당하는 코드가 동작
6. 코드의 동작 결과를 응답으로 돌려줌
7. 서버가 -> 웹 브라우저로 데이터를 보내줌
8. 웹 브라우저 응답받은 데이터를 화면에 표시
9. * JS(AJAX) (데이터를 받아온 다음에 JS를 통해서 AJAX라는 기술로 1~8번이 한번더 되거나 여러번 될수 있다.

내가 1~9번 중에 내가 지금 무슨 일을 하고있는지 알고 있어야 제대로 코드를 짤 수 있다.
5번 6번 >>>>백엔드 역할 (코드가 엄청 많음)
페이지 하나 왔을 때 마다 URL패턴마다 소스코드 1개 이상,

Framework: 어떤 일을 할 때 자주 사용되는 기능을 미리 준비해둔것

-> 제품 빨리 출시야되서

Micro: 최소한의 기능만 가지고 있다 +추가 기능을 원하는 대로 설치해서 사용한다. (커스터마이징 굿 Flask)

FullStack: 거의 대부분의 기능을 가지고 있다. +추가 기능도 설치 가능 (커스터마이징 배드 Django)

디자인 패턴 : 개발 설계상 발생하는 문제를 해결하기 위한 해결책 (디자이너, 프론트, 백엔드 이 세 사람의 역할을 최대한 나누기 위해 노력중)

-MVC: Model(데이터베이스), View(화면-프론트), Controller(계산 ,처리-백엔드
-MTV: Model(데이터베이스, Template(화면-프론트), View(계산,처리-백엔드)

장고는 MTV !!😆🖥

장고로 프로젝트 만드는 순서

  1. 프로젝트 만들기

  2. 장고 설치

  3. 장고 프로젝트 만들기

  4. 설정하기 (데이터베이스, S3)

  5. 데이터베이스 초기화

  6. 관리자 계정 만들기

  7. 앱 만들기

  8. 모델 설계 (데이터베이스)

  9. 뷰 만들기 (기능,계산)

  10. 템플릿 만들기 (화면에 표시될 내용, 양식)

  11. URL을 만든다.
    대표적인 기능(화면): CRUD ->Create, Read, Update, Delete

7~11번은 프로젝트를 만들 때 계속 반복한다.

7,8이 한번 끝나면 또 그안에서 9~11번이 반복된다.

여기서 템플릿은 프론트



실습

일단 미니콘다를 activate한다.

그러면 터미널 왼쪽에 (base) -> (가상환경 이름)
으로 바뀌어 있을 것이다.

장고를 다운로드한다. pip install django 터미널에 입력
mysql설치
그 다음에
pip install mysqlclient

mysql.server start

$ mysql -u root -p

mysql> create database "NAME" character set utf8mb4 collate utf8mb4_general_ci;

장고 버전 확인
python -m django --version
-m 은 메세지를 보낸다는 것이다.

프로젝트 만들기 !!
프로젝트 만들 디렉토리를 먼저 만들어준다 (optional)
Django_test라는 디렉토리에 만들꺼다.
django-admin startproject starbucks_project
난 starbucks_project 라는 프로젝트를 만들었다.
참고로 왼쪽에 (base)라고 되어있는데, 저렇게 되어있다고 내 가상환경이 항상 꺼져있는것은 아니다. 한번 activate하면 deactivate하지 않는 이상 계속 켜져있다. 그리고 이렇게 켜져있어도, 터미널 하나 더 켜서 작업할려고 하나 더 키면 (base)로 돌아와 있다. (하지만 starbucks 가상환경은 켜져있는 상태)

아무튼 django-admin startproject 명령어를 써서 프로젝트를 만들면
안에 products 파일을 제외한 manage.py 와 starbucks가 생긴다
(products는 내가 이미 프로젝트 진행할 때 생성된 것이다)

폴더트리 설명

  • outer starbucks : a container for my project. 이름 마음대로 바꿔도 됨. firstsite 로 바꿈.
    • manage.py : Django 프로젝트와 다양한 방법으로 상호작용하는 커맨드라인의 유틸리티
    • starbucks/ : 프로젝트를 위한 실제 python 패키지들이 저장됨.
      • __init__.py : 오.. init... python에게 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일.≠
      • settings.py : 현재 Django 프로젝트의 환경 및 구성을 저장함.
      • urls.py : 현재 Django project의 URL 선언을 저장. Django로 작성된 사이트의 목차라고도 할 수 있음. settings.py 안에 있는 ROOT_URLCONF에 settings/url.py에 하겠다고 선언해두었기 때문.
      • asgi.py : 현재 프로젝트를 지원하기 위한 ASGI 호환 웹 서버의 진입점(entry-point). 뭔지 잘 모르겠음. - (django는 비동기를 지원하지 않았기에, 해당 기능을 사용하고자 할 때 사용)
      • wsgi.py : 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점.
        • 웹 서버 게이트웨이 인터페이스 (django를 사용하지 않고 파이썬으로 사용하게 되면 직접 설정해줘야 함.
        • 두 파일이 있어야 web server로서 동작할 수 있음.

개발 서버 작동 확인

starbucks_project 파일에 들어가서

python manage.py runserver

그리고 브라우져에 http://127.0.0.1:8000/

서버를 run 했을 때 뜨는 이 화면.... 겨우겨우 여기까지 왔을 때 먼 산을 등산하다가 정상에 오른것 같았다. 하지만 산 넘어 산이란 말이 있지.

내 앱의 첫번째 뼈대가 완성되었다. 지금부터 해야할 작업은 다음과 같다.

  • Project에 내 app 등록하기
  • 뷰 작성하기
  • URL 연결하기
  • 데이터베이스 만들기
  • 모델 만들기 + 데이터베이스에 연결하기

하나씩 해보면서 정리해보자!

안에 settings.py에 들어가서

INSTALLED_APPS 부분에 맨위 한줄을 추가해서 저장후 나왔다.

이것이 Project에 내 app 등록하기!!!
중요한 것은 settings.py 안에 INSTALLED_APPS 안에 app을 추가 해주는 것이다.

(2) View (뷰) 작성하기

polls/view.py

from django.http import HttpResponse #어디 sys에 있겠지...?

def index(request):
		return HttpResponse("Hello, world. You're at the polls index.")

index 라는 페이지에 접근하면 우리는 Hello, world. You're at the polls index.가 표출 된 것을 볼 수 있다는 뜻. (아직은 안됨. 3번까지 해야 됨.)

뷰만 만든다고 화면이 보이는 것이 아니라, 이 뷰를 호출하려면 이와 연결된 URL이 있어야 한다.

여기서 polls는 앱 이름이다.


  1. database생성하기

python manage.py makemigrations 앱이름
python manage.py migrate

  1. Model 만들기.



장고 완전 지우는 법

https://gist.github.com/vitorbritto/0555879fe4414d18569d

Remove MySQL completely
1. Open the Terminal

2. Use mysqldump to backup your databases

3. Check for MySQL processes with: ps -ax | grep mysql

4. Stop and kill any MySQL processes

5. Analyze MySQL on HomeBrew:
brew remove mysql
6. brew cleanup
7. 

8. Remove files:
sudo rm /usr/local/mysql
9. sudo rm -rf /usr/local/var/mysql
10. sudo rm -rf /usr/local/mysql
11. sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
12. sudo rm -rf /Library/StartupItems/MySQLCOM
13. sudo rm -rf /Library/PreferencePanes/My

14. 

15. Unload previous MySQL Auto-Login:
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
16. 

17. Remove previous MySQL Configuration:
subl /etc/hostconfig`
18. # Remove the line MYSQLCOM=-YES-
19. 

20. Remove previous MySQL Preferences:
rm -rf ~/Library/PreferencePanes/My
21. sudo rm -rf /Library/Receipts/mysql

22. sudo rm -rf /Library/Receipts/MySQL
23. sudo rm -rf /private/var/db/receipts/
mysql*
24. 

25. Restart your computer just to ensure any MySQL processes are killed

26. Try to run mysql, it shouldn't work


profile
🇰🇷🇺🇸 #Back-End Engineer

0개의 댓글