반응형

#  선행사항 : python -class

-class : 파이썬에서 객체 지향 프로그래밍의 기본단위

-메서드 (method) / 속성(property)/클래스변수(class variable), 인 스턴스변수(instance variable), 초기자(initializer), 소멸자(destructor)로 구성


# 요약=데이터베이스에어떤데이터를넣을지정의하고,admin의권한으로데이터생성


1. models.py 안에 어떤 종류의 데이터 처리할지 class 정의

2. DB에게 알아듣게 하기(makemigrations, migrate)

3. Admin 계정 만들기(admin.py에 활용할 데이터 등록)


<Model>

-데이터 생성, 데이터베이스 다룰 수 O

-데이터 처리 형식 : models.py -> Class로 정의 -> class 계속 호출하여 같은 형식 데이터 계속 사용

-Django의 model.py 변경 -> DB에 선언 해주어야 함


1
2
3
$python manage.py makemigrations #마이그레이션 파일 생성
$python manage.py migrate # db에 만든 변경내용 적용
 
cs


<Admin>

-admin 계정 생성 

1
$python manage.py createsuperuser
cs

-계정생성 후 admin.py에 데이터 등록


<<실습>>

project 생성 -> app 생성 -> project에 app연결 후 모델 생성!


-models.py

1
2
3
4
5
6
7
class Blog(models.Model):
    title = models.CharField(max_length = 200)
    pub_date = models.DateTimeField('data published')
    body = models.TextField()
 
    def __str__(self):
        return self.title # 장고 db 확인 시 타이틀이 보이게 함 원래는 object(1)으로 보임
cs

-변경된 데이터 DB에 적용 #SETTINGS.PY의 DATABASES부분에서 db타입 바꿀 수 있음

1
2
$python manage.py makemigrations #마이그레이션 파일 생성
$python manage.py migrate # db에 만든 변경내용 적용
cs


-admin 계정 생성

1
2
$python manage.py createsuperuser #name->email->password 순 입력
 
cs


-Admin 사이트에 항목추가 / admin.py 에 models.py에 만든 class 추가

1
2
3
4
from .models import Blog #import model에서 Blog 객체 불러오기
 
admin.site.register(Blog) #admin 사이트에 Blog 등록
 
cs


-DB데이터 템플릿으로 출력/app->views.py

1
2
3
4
5
from .models import Blog
 
def home(request):
    blogs = Blog.objects # 쿼리셋 # 메소드
    return render(request, 'home.html', {'blogs': blogs})
cs


#쿼리셋 : 모델로부터 전달받은 객체

#메소드 : 쿼리셋의 기능을 처리하고 정렬(종류 : .all().count().last().first()

#blogs를 사전형 객체 blogs에 담기(template 출력 위해서!)

#쿼리셋과 메소드 형식

모델=쿼리셋(objects).메소드


-app -> templates -> home.html

1
2
3
4
5
6
{% for blog in blogs.all %}
    <h1> {{blog.title}} </h1>   
    <p> {{blog.pub_date}} </p>
    <p> {{blog.body}} </p>
    <br><br>
{% endfor %}
cs


-urls.py

1
2
3
4
5
6
import blog.views
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', blog.views.home, name="home"),
]
cs


반응형

'Web > Django' 카테고리의 다른 글

[4주차]1.pk, path converter, get_object_or_404  (0) 2019.03.03
[3.5주차]Bootstrap  (0) 2019.03.03
[2.5주차]GIT  (0) 2019.03.03
[2주차]word counter 이론 & 실습  (0) 2019.03.03
[1.5주차]MVT 패턴  (0) 2019.03.03

+ Recent posts