행위

파이썬 장고

DB CAFE

1 장고

1.1 모듈 구성도

장고 모듈 구성도.PNG

1.2 프레임워크 구조

Djanggo.png

1.2.1 장고 파일 구조

├── db.sqlite3
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── app
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

1.3 가상화

source myvenv/bin/activate

1.4 프로젝트시작

django-admin startproject myprj .

1.5 디렉토리구조

1.5.1 manage.py

1.5.2 * 사이트 관리

1.5.3 * 서버시작

python manage.py runserver 
or -- 포트 지정할 경우 
python manage.py runserver 0.0.0.0:8000

1.5.4 settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app',
]

1.5.4.1 웹사이트설정

TIME_ZONE = 'Asia/Seoul'
STATIC_URL = '/static/'
      * 정적파일위치
      * CSS
STATIC_ROOT = os.path.join(BASE_DIR,'static')
ALLOWED_HOSTS = ''
      * 로컬호스트
      * [::1]
      * 127.0.0.1
배포시
ALLOWED_HOSTS = ['127.0.0.1','.xxx.com']
MESSAGE_STORAGE
크롬북 사용자 일때 = 'django.contrib.messages.storage.session.SessionStorage'
DATABASES = {
            'default' : {
                        'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
                        }
            }

1.5.5 DB설정

python manage.py migrate
  • DB생성 명령
  • INSTALLED_APPS
       * = [ 

...... ,blog', ]

  • urls.py
  • wsgi.py
  • __init__.py

1.5.6 어플리케이션생성

python manage.py startapp blog
* blog 
    * migrations
        * __init__.py
    * __init__.py
    * admin.py
    * models.py
        * 데이터모델생성
            * 전체소스...
             * > from django.db import models
             * > from django.utils import timezone
             * > 
             * > 
             * > class Post(models.Model):
             * >     author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
             * >     title = models.CharField(max_length=200)
             * >     text = models.TextField()
             * >     created_date = models.DateTimeField(
             * >             default=timezone.now)
             * >     published_date = models.DateTimeField(
             * >             blank=True, null=True)
             * > 
             * >     def publish(self):
             * >         self.published_date = timezone.now()
             * >         self.save()
             * > 
             * >     def __str__(self):
             * >         return self.title

            * from django.db import models
            * from django.utils import timezone
            * class Post(models.Model):
                *     author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
                    * 저자 컬럼
                *     title = models.CharField(max_length=200)
                    * 타이틀 컬럼
                *     text = models.TextField()
                    * 내용 컬럼
                *     created_date = models.DateTimeField(
            default=timezone.now)
                    * 생성일자 컬럼
                *     published_date = models.DateTimeField(
            blank=True, null=True)
                *     def publish(self):
                    *         self.published_date = timezone.now()
                    *         self.save()
                *     def __str__(self):
                    *         return self.title
    * tests.py
    * views.py
  • 장고에 등록하기