'개발/python'에 해당되는 글 12건

  1. 2017.08.27 Django 프로젝트 생성 및 App 만들기
  2. 2016.08.17 Python Django WEB project 개발하기1

Django 앱 만들기

참고
how to use

  1. 시작하기 전에

    • 프로젝트 vs. 앱
      - 프로젝트는 다양한 앱을 포함
      - 앱은 웹 어플리케이션의 기능 (e.g., 웹 블로그시스템,공공 기록의 데이터베이스 또는 간단한 투표 앱)
      
    • virtualenv: 개발환경에서 독립된 개발환경을 제공해주는 프로그램

      ```
      # 패키지 설치
      $ sudo pip install virtualenv
      
      # 프로젝트 생성
      $ virtualenv venv_projat
      New python executable in /mr.sense/venv/venv_projat/bin/python
      Installing setuptools, pip, wheel...done.
      
      # 가상환경 실행
      $ source ./venv_projat/bin/activate
      
      # 가상환경 에서 사용하는 python moduel 확인
      $ pip list
      Django (1.11.3)
      pip (9.0.1)
      pytz (2017.2)
      setuptools (36.2.5)
      wheel (0.29.0)
      
      # 가상환경 종료
      $ deactivate
      ```
      
  2. Django 의 구조

    • MVT 모델
      - [좋은 참고자료](http://heiswed.tistory.com/category/SW%20%EA%B0%9C%EB%B0%9C/Django)  
      - 모델  Model:  
            - DB 구조를 설정하는 컴포넌트, ORM 방식을 사용하여 SQL 문을 직접 사용하지 않고 파이썬 객체로 접근  
            - 하나의 class 가 하나의 table 을 의미한다  
      - 뷰 View: (== MVC 모델의 Controller)  
            - 데이터를 입력받거나 표시하는 컴포넌트   
      - 템플릿 Templates: (== MVC 모델의 View)  
            - 사용자의 입력과 이벤트에 반응하여 Model 과 View 를 업데이트  
            - 디자인 영역의 분리 및 재사용서을 높이기 위해 HTML 구조만 따로 모아놓은 것  
            - {{변수}}, {{% 태그 %}}   
      
    • 흐름도

  3. Django 프로젝트

    • 생성

       ```
           # django-admin.py {{실행 파라미터}} {{프로젝트명}}
           $ django-admin.py startproject djangoproject
       ```
        > django-admim 스크립트의 이름은 배포 패키지에 따라 다를 수 있음
      
    • 구조

       ```
          djangoproject/
              ㄴ manage.py # 초기화, 마이그레이션, 실행 등을 수행하는 파일
              ㄴ djangoproject/
                      ㄴ __init__.py
                      ㄴ settings.py # 웹사이트 설정이 있는 파일
                                - ALLOWED_HOSTS: 접근 가능 호스트 정리
                                - DATABASES: 사용할 DB 정보
                                    - ENGINE:
                                        'django.db.backends.sqlite3'
                                        'django.db.backends.postgresql_psycopg2'
                                        'django.db.backends.mysql'
                                        'django.db.backends.oracle'
                                - INSTALLED_APPS:
                                    - django.contrib.auth – 인증시스템
                                    - django.contrib.contenttypes – 컨텐츠타입 프레임워크.
                                    - django.contrib.sessions – 세션프레임워크
                                    - django.contrib.sites – 한번의 Django설치로 여러 사이트 관리를 위한 프레임워크.
                                    - django.contrib.messages – 메시징 프레임워크
                                    - django.contrib.staticfiles – 정적파일을 관리하기 위한 프레임워크.
                                    - **신규 생성할 앱을  프로젝트에 추가한다.**                                
                      ㄴ urls.py # urlresolver 가 사용하는 패턴 목록을 포함
                      ㄴ wsgi.py # wsgi 호환 서버에서 서비스를 하기 위한 진입점
           ```
      
  4. Django 앱

    • 생성
      $ python manage.py startapp django1stapp
    • 프로젝트와의 연결
      • 프로젝트 하위 settings.py 의 INSTALLED_APPS 에 추가한다
  5. 실행

    •   $ python manage.py makemigrations
      

      model 의 변화 사항을 migration 폴더에 python 파일로 저장함.
      위에서는 ./migrations/ 폴더내에 0001_initial.py 파일이 새로 생김
      아직 database 에 model table 생성된것은 아님

        $ python manage.py migrate
      

      db table 생성

        $ python manage.py runserver ip:port
      

      django project run


'개발 > python' 카테고리의 다른 글

Python multiprocess vs multithread  (0) 2018.05.24
django mysql rest api project  (0) 2018.03.11
Django 프로젝트에서 batch job 돌리기  (0) 2018.01.23
Django 프로젝트  (0) 2017.11.29
Python Django WEB project 개발하기1  (0) 2016.08.17
Posted by 감각적신사
,

# Python WEB Project

-------------


1. python web 프로젝트 framework 선택

    - Django

    - MVC 기반 패턴대로 개발할 수 있도록 이미 구조화 되어 있음

    - ORM(Object-Relational Mappings) 기능 지원

    - 객체와 관계형 데이터베이스 간의 매핑

        - DBMS Driver 지원 (MySQL, PostgreSQL, Oracle 등)

- Viewing, template 엔진 제공

- session 관리 기능 지원

    - flask

        - 가볍고 심플한 Framework

        - 자유도가 아주 높다 == 원하는 라이브러리와 패키지 를 개발자가 붙여야 한다


2. 개발 환경

    - ubuntu 14.04

    - python 2.7.10


3. Django download

- https://www.djangoproject.com/download/


4. Django 설치 및 간단 실행

- 압축해제 tar xvfz Django-1.10.tar.gz

- 설치

- cd /download-path/Django-1.10

- sudo python setup.py install

- admin 파일 실행

- cd /download-path/Django-1.10/django/bin 

- python django-admin.py startproject myproject .

- cd /download-path/Django-1.10/django/bin/myproject

- python manager.py runserver 0.0.0.0:8000


5. postgreSQL 설치 및 실행

- 설치

- sudo apt-get libpq-dev postgresql postgresql-contrib

- DB 접속 및 데이터베이스 생성

- sudo su - postgres # postgres 유저 로그인

- psql               # postgres cli 접속

- CREATE DATABASE myproject; # DB 생성

- USER 생성 및 권한 부여

- CREATE USER myprojectuser WITH PASSWORD 'password';

- ALTER ROLE myprojectuser SET client_encoding TO 'utf8';

- ALTER ROLE myprojectuser SET default_transaction_isolation TO 'read committed';

- ALTER ROLE myprojectuser SET timezone TO 'Asia/Seoul';

- GRANT ALL PRIVILEGES ON DATABASE myproject TO myprojectuser;

       


6. django 와 postgre 연결하기

- cd /download-path/Django-1.10/django/bin/myproject/

- vi setting.py

# 추가

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.postgresql_psycopg2',

'NAME': 'myproject',

'USER': 'myprojectuser',

'PASSWORD': 'password',

'HOST': 'localhost',

'PORT': '5432',

}

}

          

- python manage.py makemigrations

- python manage.py migrate

          

7. Django 실행

- cd /download-path/Django-1.10/django/bin/myproject/

- python manage.py runserver 0.0.0.0:8000

- admin 유저 생성 및 web 접속


참고


'개발 > python' 카테고리의 다른 글

Python multiprocess vs multithread  (0) 2018.05.24
django mysql rest api project  (0) 2018.03.11
Django 프로젝트에서 batch job 돌리기  (0) 2018.01.23
Django 프로젝트  (0) 2017.11.29
Django 프로젝트 생성 및 App 만들기  (0) 2017.08.27
Posted by 감각적신사
,