cd [프로젝트파일명]
python manage.py runserver // 파일을 실행시킨다
django -->데이터베이스 관리
ORM (Object Relation Mapping) --> SQL로 데이터베이스에 명령을 내리지 않아도, 파이썬의 객체지향적인 방법으로 데이터베이스의 데이터들을 생성, 삭제, 수정이 가능해지는 것
class == 클래스 - 정보를 저장하는 틀 / 객체 : 각각 객체마다 들어오는게 다르다.
프로젝트 시작
python -m venv myvenv //가상환경 만들기
ptyhon myvenv/Scripts/activate
pip install django
django-admin startproject [프로젝트명]
cd[프로젝트명] -->manage.py가 있는 프로젝트로
python manage.py startapp [앱이름]
lionproject안의 settings.py안에 앱을 하나 만들었다고 앱이름을 installed_APPS에 적어야함
python manage.py makemigrations //만든 클래스로 table을 만들거다 알려줌
:앱 내의 migration폴더를 만들어서 models.py의 변경사항 저장
python manage.py migrate //변경사항을 찾아서 dbsqlite에 저장한다
:Migration폴더를 실행시켜 데이터베이스에 적용
Django의 데이터베이스는 아무나 들어가서 변경이 안됨 [프로젝트파일명]
python manage.py runserver // 파일을 실행시킨다
django -->데이터베이스 관리
ORM (Object Relation Mapping) --> SQL로 데이터베이스에 명령을 내리지 않아도, 파이썬의 객체지향적인 방법으로 데이터베이스의 데이터들을 생성, 삭제, 수정이 가능해지는 것
class == 클래스 - 정보를 저장하는 틀 / 객체 : 각각 객체마다 들어오는게 다르다.
Django의 데이터베이스는 아무나 들어가서 변경이 안됨
python manage.py createsuperuser 를 이용해서 데이터베이스에 권한을 받아야한다
admin.py에 데이터베이스에 Blog를 저장한다는 문장을 적어줘야한다
from .models import Blog
admin.site.register(Blog)
Models.py
#클래스의 이름은 테이블과 같아야함
#models이라는 클래스를 상속받음
class Blog(models.Model) :
#Model 안에 이미 id가 정의되어있다!
#제한이 있는 문자열 .CharField
name = models.CharField(max_length = 200) #title
drafter = models.CharField(max_length = 100) #writer
date = models.DateTimeField() #pub_date
textBody = models.TextField() #body / 제한이 없는 field
#Django의 데이터베이스는 아무나 들어가서 변경할 수 없음
#python manage.py createsuperuser를 사용해서 데이터베이스에 권한을 만들어야한다
def __str__(self): #객체가 호출이 될때 글의 제목이 볼 수 있게끔한다.
return self.name #/admin/의 페이지에서 제목으로 이름이 보인다.
CRUD - (create / read / update / delete)
데이터베이스 정보를 CRUD한다. --> 기술구현
views.py에 함수를 만들 때마다 urls.py에 path를 추가시켜준다고생각cd [프로젝트파일명]
python manage.py runserver // 파일을 실행시킨다
views.py
from django.shortcuts import render, get_object_or_404, redirect
from django.utils import timezone
from .models import Blog
# Create your views here.
def create(request):
blog = Blog()
blog.title = request.GET['title']
blog.body = request.GET['body']
blog.pub_date = timezone.datetime.now()
blog.save()
return redirect('/blog/' + str(blog.id))
request.GET['title']은 new.html안의 form 태그 안에 있는 <form name="title">이렇게 설정해준 애를 가져오는 것.
redirect : 요청을 처리하고 보여주는 페이지/ 요청을 처리하면 저쪽 url로 보내는 기능
render : 요청이 들어오면 html파일을 보여주는 기능
'기타 > Django & Web' 카테고리의 다른 글
[django] django-crispy-form 설치 및 사용방법 (0) | 2021.05.16 |
---|---|
[Django - Thumbnail] 섬네일 지정하기 (0) | 2021.05.11 |
Week04 - Static , Media, Form (0) | 2021.05.04 |
Django정리 (0) | 2021.04.27 |
깃 사용법 (0) | 2021.04.13 |