장고의 개념을 좀 더 탑재하기 위해 리서치를 좀 더 했다.
출처:https://www.youtube.com/watch?v=Nv_9uZ4ld9U
출처: https://www.youtube.com/watchv=Cph0s6dT0Ik&feature=youtu.be
위 영상 개념쌓기 좋다.
-Frontend:화면(웹 브라우져에서 동작하는 코드 -> HTML, CSS, JS
-Backend:서버 (데이터를 입출력하거나, 계산을 하거나하는 서버에서 동작하는 코드)
->컴퓨터에서 동작하는 언어 (python, ruby, java, php, js , C#)
-웹사이트 동작 방식
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개 이상,
-> 제품 빨리 출시야되서
FullStack: 거의 대부분의 기능을 가지고 있다. +추가 기능도 설치 가능 (커스터마이징 배드 Django)
디자인 패턴 : 개발 설계상 발생하는 문제를 해결하기 위한 해결책 (디자이너, 프론트, 백엔드 이 세 사람의 역할을 최대한 나누기 위해 노력중)
-MVC: Model(데이터베이스), View(화면-프론트), Controller(계산 ,처리-백엔드
-MTV: Model(데이터베이스, Template(화면-프론트), View(계산,처리-백엔드)
장고로 프로젝트 만드는 순서
프로젝트 만들기
장고 설치
장고 프로젝트 만들기
설정하기 (데이터베이스, S3)
데이터베이스 초기화
관리자 계정 만들기
앱 만들기
모델 설계 (데이터베이스)
뷰 만들기 (기능,계산)
템플릿 만들기 (화면에 표시될 내용, 양식)
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는 내가 이미 프로젝트 진행할 때 생성된 것이다)
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 호환 웹 서버의 진입점.starbucks_project 파일에 들어가서
python manage.py runserver
그리고 브라우져에 http://127.0.0.1:8000/
서버를 run 했을 때 뜨는 이 화면.... 겨우겨우 여기까지 왔을 때 먼 산을 등산하다가 정상에 오른것 같았다. 하지만 산 넘어 산이란 말이 있지.
내 앱의 첫번째 뼈대가 완성되었다. 지금부터 해야할 작업은 다음과 같다.
하나씩 해보면서 정리해보자!
안에 settings.py에 들어가서
INSTALLED_APPS 부분에 맨위 한줄을 추가해서 저장후 나왔다.
이것이 Project에 내 app 등록하기!!!
중요한 것은 settings.py 안에 INSTALLED_APPS 안에 app을 추가 해주는 것이다.
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이 있어야 한다.
python manage.py makemigrations 앱이름
python manage.py migrate
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