기타/Django & Web

Django정리

yujindonut 2021. 4. 13. 18:30
728x90

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파일을 보여주는 기능

 

728x90