메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

파이썬 장고

DB CAFE
Dbcafe (토론 | 기여)님의 2024년 10월 2일 (수) 01:14 판 (새 문서: = 장고= == 모듈 구성도== |왼쪽 == 프레임워크 구조 == |가운데 === 장고 파일 구조 === <source lang=python> ├── db.sqlite3 ├── manage.py ├── mysite │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py └── app ├── __init__.py ├── admin.py ├── apps.py ├── migrations │ └─...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

장고

모듈 구성도

파일:장고 모듈 구성도.PNG

프레임워크 구조

파일:Djanggo.png

장고 파일 구조

├── 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

가상화

source myvenv/bin/activate

프로젝트시작

django-admin startproject myprj .

디렉토리구조

manage.py

* 사이트 관리

* 서버시작

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

settings.py

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

웹사이트설정

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'),
                        }
            }

DB설정

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

...... ,blog', ]

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

어플리케이션생성

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
  • 장고에 등록하기