[Python] 웹프로그래밍(상품관리)

22. 웹프로그래밍(상품관리)


22.1 프로젝트 만들기

New - Other - PyDev - PyDev Django Project

프로젝트 이름 : pyweb_shop


pyweb_shop 디렉토리가 2개 만들어진다.

d:\work\pyweb_shop

d:\work\pyweb_shop\pyweb_shop - python 웹프로젝트의 설정 디렉토리


22.2 기본 테이블 생성

d:

cd work/pyweb_shop

python manage.py migrate


22.3 슈퍼 유저 생성

cd work/pyweb_shop

python manage.py createsuperuser


아이디와 비밀번호만 입력, 이메일은 생략 가능

비밀번호는 8자 이상이어야 하고 영문자+숫자로 구성해야 함

username : admin

password : admin1234


22.4 애플리케이션 생성

python manage.py startapp shop


shop 관련 디렉토리가 만들어진다.

이클립스에서 F5를 눌러 새로고침


22.5 settings.py


22.6 shop/models.py

테이블을 새로 만들기 위해 models.py와 admin.py 2개의 파일을 수정해야 함


models.py : 테이블에 대한 모델 클래스 정의

admin.py : models.py에 등록한 테이블이 Admin 사이트에서도 보이도록 처리


테이블을 하나의 클래스로 정의하고 테이블의 컬럼은 클래스의 변수로 매핑

테이블 클래스는 django.db.models.Model 클래스를 상속받아 정의

변수 자료형도 장고에서 미리 정의된 자료형을 사용한다.

models.URLField( '필드의 별칭', unique )


from django.db import models

from django import forms

from django.contrib.auth.models import User


# 상품 클래스

class Product(models.Model):

product_id = models.AutoField(primary_key=True)

product_name = models.CharField(null=False, max_length=150)

price = models.IntegerField(default=0)

description=models.TextField(null=False, max_length=500)

picture_url=models.CharField(null=True, max_length=150)


# 사용자 클래스

class UserForm(forms.ModelForm):

class Meta:

model = User

fields = ["username", "email", "password"]


# 장바구니 클래스

class Cart(models.Model):

cart_id = models.AutoField(primary_key=True)

userid = models.CharField(null=False, max_length=150)

product_id = models.IntegerField(default=0)

amount = models.IntegerField(default=0)


22.7 데이터베이스 변경 사항 반영

지금까지 코드로 작업한 모델 클래스들을 DB에 반영

cd work/pyweb_shop


python manage.py makemigrations

python manage.py migrate


22.8 웹서버 구동

python manage.py runserver localhost:80


웹브라우저에서 http://localhost


22.9 웹서버 구동


22.10 shop/forms.py

from django import forms

from django.contrib.auth.models import User


# 회원가입폼

class UserForm(forms.ModelForm):

class Meta:

model = User

fields = ["username", "email", "password"]


# 로그인폼(아이디와 비밀번호만 입력받음)

class LoginForm(forms.ModelForm):

class Meta:

model = User

fields = ["username", "email", "password"]


22.11 shop/views.py

22.12 shop 하위에 templates, static 디렉토리 생성

22.13 shop/templates/index.html

22.14 shop/templates/login.html

22.15 shop/templates/join.html

댓글(0)

Designed by JB FACTORY