Programming/Python_Web (26) 썸네일형 리스트형 파이썬 정적 사이트 생성기(SSG) 펠리칸 (Pelican) 시작하기 파이썬하면 요즘 ML/DL, 데이터분석 등으로 엄청난 인기를 끌고 있는데요. 웹프로그래밍에서도 매우 많은 인기가 있습니다. 우리나라에서는 점유율이 많이 못미치지만, 해외에서 Django, FastAPI등은 매우 좋은 반응을 보이고 있습니다. 오늘 소개할 도구는 Django나 FastAPI와 같은 서버도구는 아닌, 파이썬으로 만들어진 정적사이트 생성기 펠리칸(Pelican)입니다. 1. 설치 우선 일반적인 파이썬 프로젝트 시작방법과 마찬가지로 가상환경을 만들어줍니다. (pycharm을 활용하면 쉽게 가상환경이 만들어집니다. VSCode로 진행하면 조금 까다로우니, 다른 포스팅을 참고하세요). 가상환경이 만들어지면 아래의 pip install ~ 로 pelican을 설치합니다. pip install peli.. Django - Gitlab - Heroku CD/CI 배포 와 Freenorm DNS연결 Django앱을 Gitlab에 올리고, Heroku로 자동 배포하는 방법, 그리고 Freenorm의 무료 DNS를 적용하는 방법을 알아보겠습니다. 순서는 아래와 같습니다. django 앱 생성 (본문은 Django의 사용법을 다루는 글이 아니므로, 기본적인 앱은 만들어져 있어야 합니다.) Heroku repo 생성 Gitlab repo 생성 CD/CI설정 (Gitlab 추가설정 및 파일 추가 생성) 추가 설정 (오류 점검) 외부DNS(Freenom) 적용 1. Django 앱 생성 기본적인 앱이 구현되어있겠지만, 앱을 배포하기 위해서는 추가적인 라이브러리 설치가 필요합니다. pip install gunicorn whitenoise django-herok # gunicorn: 위에서 설명한 파이썬 HTTP.. Python - Django 시작하기 4 - oracle DB ORM Join Oracle DB의 테이블을 이용해서 Join하는 방법을 알아보겠습니다. 1. 모델 정의 1:N관계에서 N쪽 테이블(TempDataroomHstry클래스)에 ForeignKey로 1쪽 테이블명(Temp래스)을 지정해줍니다. 이때, 1쪽 테이블의 참조하려는 필드가 Primary Key로 지정되어있으면 상관없지만, 없을 경우 필드 정의에(ForeignKey 함수 내부에서) to__field='목표필드' 를 지정해줘야 합니다. 그리고, db_column='참조칼럼명' 에서 해당 테이블에서 참조할 실제 칼럼(필드)명을 지정해줘야 합니다. (*) Oracle DB에서만 이런 문제가 발생하는 것인지.. 아직은 잘 모르겠습니다. 이것 때문에 한참을 헤메었네요..^^;; 또한 이번의 경우 Temp의 emp_field와.. Python Open API(XML) 활용하기 - 부동산 매매가격 import pandas as pd import requests from bs4 import BeautifulSoup key = '내 서비스키' # url='http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?LAWD_CD=11110&DEAL_YMD=201512&serviceKey='+key url='http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade?serviceKey='+key rowList=[] # 전체 행을 저장할 변수 nam.. Python - Django 시작하기 3 - blog app 추가하기 블로그 앱을 추가하도록 하겠습니다. 블로그 앱에서는 메인인 Home.html에서 포스트 클릭 시 포스트를 출력해주는 기능입니다. 1. blog app 추가 블로그 앱을 생성해줍니다. django-admin startapp blog 2. mysite/settings.py 수정 블로그 앱을 등록해줍니다. INSTALLED_APPS = [ 'blog.apps.BlogConfig',# 추가 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] 3. blog/models.py .. Python - Django 시작하기 2 - start bootstrap template 적용 Start Bootstrap에서 템플릿을 받아와서 메인 페이지를 구성하겠습니다. 1. Start Bootstrap 템플릿 다운로드 우선 Google에서 start bootstrap으로 검색하여 해당 사이트로 이동합니다. 다음으로 Themes 메뉴를 클릭한 다음, Free 옵션을 선택(Pro 해제) 하여 무료 옵션 중에서 적당한 테마를 고릅니다. 클릭하여 나타나는 상세 페이지에서 Download를 해 줍니다. 그리고 Template에서도 블로그용 template를 받아줍니다. 다운로드 받은 Theme 파일은 아래와 같이 static폴더와 templates폴더에 나누어 넣어줍니다. index.html 파일은 home.html로 이름을 바꾸어줍니다. 2. home.html 파일 수정 파일 링크를 참조하는 "s.. Python - Django 시작하기1 - 설치 1. 프로젝트 생성 ( 가상환경 생성) 2. 라이브러리 설치 pip install django 3. Django 프로젝트 설치 현재 폴더에 ( . ) mysite라는 프로젝트를 생성해줍니다. 이 경우 manage.py파일이 현재 폴더에 생성됩니다. (현재 폴더를 지정하지 않으면 한단계 더 아래 폴더에 프로젝트 및 manage.py 파일을 생성합니다. ) django-admin startproject mysite . 4. setting.py 수정 DB / Template / Media / Static 관련된 폴더들을 만들고, 이들 경로를 BASE_DIR을 기준으로 지정해줍니다. 그리고 TIME_ZONE, USE_TZ 값을 수정해줍니다. """ Django settings for mysite project... FastAPI - Jinja2, Form, Redirect 적용 Database에서 간단히 CRUD만 구성할 일이 있었는데, Backend 와 Frontend를 분리해서 구축하려니 조금 번거로워서 찾게되었습니다. Python 프레임워크들은 Jinja2 템플릿을 사용하여 Frontend도 쉽고 빠르게 구축할 수 있도록 지원해주기 때문에, 이런 용도로는 잘 맞는 것 같습니다. FastAPI도 일반적으로는 API 형태의 backend를 구성하겠지만, Jinja2를 이용하여 Frontend 연결까지 해보도록 하겠습니다. 1. 폴더구조 아래와 같이 폴더구조를 만들겠습니다. 이전에 만들었던 main.py를 업데이트하기 위해 mainlist.py 파일을 새로 작성하였습니다. 실행도 mainlist.py로 실행하겠습니다. 2. 라이브러리 설치 pip install fastapi, .. 이전 1 2 3 4 다음