안녕하세요? 리뷰용입니다.
이번에 리뷰용의 본분을 살짝 잊고 웹페이지 제작을 하려고합니다.
DK기업의 홈페이지를 제작할거구요
파이썬 장고를 이용해서 하려고합니다.
이포스팅은 이 프로젝트는 패스트캠퍼스 파이썬 올인원 강의를
토대로 만들었습니다. 처음에는 따라치기 바빳는데 이제 제가
직접 만들려고 보면서 하니까 아 이런거구나 알수 있었습니다.
그래도 아직도 오류는 많이 나네요...
1. 일단 가상화 환경을 만들어줍니다. : virtualenv dongkwang
2. 가상환경을 액티브하게 합니다 : source dongkwang/bin/activate
3. 장고를 설치합니다. : pip install django
4. 프로젝트를 설치합니다. : django-admin startproject dongkwang1
5. dongkwang1 로 들어가서 dkuser, product, order를 생성합니다.
: django-admin startapp dkuser
: django-admin startapp product
: django-admin startapp order
6. 이제 모델을 만들어야합니다. dkuser, product, order 폴더에 각각 models.py에 들어갑니다.
dkuser는 email, password, register_date
product는 name, proce,description
order는 외래키를 써야합니다. foreignkey fcuser, product, quantity register_date 등록합니다.
이제 DB에 넣어야 할 것들을 준비합니다.
class Meta : ..... 이런식으로 dkuser, product, order 다 만들어줍니다.
그리고 settings.py 에 등록을 해야합니다.
installed apps에가서 3개 등록을하구요 이제 마이그레이션을 합니다.
python manage.py makemigrations
python manage.py migrate
이제 admin 을 생성 할것입니다.
dkuser, product, order 폴더에가면 admin.py가 있는데
거기있는 걸 건드릴겁니다. 거기서 핵심은
list_display = () 입니다.
슈퍼유저를 만드는방법은
python manage.py create superuser
아이디 비번 설멍하시고
python manage.py runserver 하시면
웹브라우져에서 확인 가능합니다.
dkuser admin.py
from django.contrib import admin
from .models import Dkuser
# Register your models here.
class DkuserAdmin(admin.ModelAdmin):
list_display = ('email', )
admin.site.register(Dkuser, DkuserAdmin)
dkuser models.py
from django.db import models
# Create your models here.
class Dkuser(models.Model):
email = models.EmailField(verbose_name='이메일')
password = models.CharField(max_length=128, verbose_name='비밀번호')
register_date = models.DateTimeField(auto_now_add=True, verbose_name='등록날짜')
class Meta:
db_table = 'dongkwang_dkuser'
verbose_name = '사용자'
verbose_name_plural = '사용자'
order admin.py
from django.contrib import admin
from .models import Order
# Register your models here.
class OrderAdmin(admin.ModelAdmin):
list_display = ('dkuser', 'product' )
admin.site.register(Order, OrderAdmin)
order models.py
from django.db import models
# Create your models here.
class Order(models.Model):
dkuser = models.ForeignKey('dkuser.Dkuser', on_delete=models.CASCADE, verbose_name='사용자')
product = models.ForeignKey('product.Product', on_delete=models.CASCADE, verbose_name='상품')
quantity = models.IntegerField(verbose_name='수량')
register_date = models.DateTimeField(auto_now_add=True, verbose_name='등록날짜')
class Meta:
db_table = 'dongkwang_order'
verbose_name = '주문'
verbose_name_plural = '주문'
product admin.py
from django.contrib import admin
from .models import Product
# Register your models here.
class ProductAdmin(admin.ModelAdmin):
list_display = ('name', 'price')
admin.site.register(Product, ProductAdmin)
product models.py
from django.db import models
# Create your models here.
class Product(models.Model):
name = models.CharField(max_length=256, verbose_name='상품명')
price = models.IntegerField(verbose_name='상품가격')
description = models.TextField(verbose_name='상품설명')
stuck = models.IntegerField(verbose_name='재고')
register_date = models.DateTimeField(auto_now_add=True, verbose_name='등록날짜')
class Meta:
db_table = 'dongkwang_product'
verbose_name = '상품'
verbose_name_plural = '상품'