# 선행사항 : 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 |
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 |