분류 전체보기 477

[Django] 장고 입문 1. 가상환경 설정( 장고 시작 )

1. 장고 실행 - 장고는 VsCode로 실행 합니다. - 장고를 실행 할 폴더에 git bash창을 킵니다. - CLI 창에 "code . "을 입력하면 간단하게 VsCode를 실행할 수 있습니다. ​ ​ 2. 가상환경 설정 - 장고를 실행하기 전에 가상환경을 실행해 주어야합니다. - 가상환경을 설정해주는 이유는 Django에서 제공해주는 많은 패키지들을 다운받아야하는데 - 각 프로젝트마다 고립된 개발환경을 설정해 주기 위해서 가상환경을 사용해 줍니다. (pip, virtualenv, pipenv) ​ (가상환경 설치 방법,과정) 1) VsCode의 터미널 창을 bash창으로 설정해 줍니다. ​ 2) 가상환경 폴더 만들기 "python -m venv " - : 만들어줄 폴더 이름을 설정해 줍니다, ex..

Django/기초 2021.06.13

Django - migrate 오류 'No migrations to apply'...

후.. Django migrate 오류 처리 해결 과정을 기록하기위해 글을 남긴다. 장고와 mysql 연동후 Django 내에 있는 sqlite3.db 파일과 migrate 파일 제거해주었다.(init 파일 빼고) 그 후에 평소처럼 1. makemigrations 2. migrate 를 해줬는데 1. makemigrations (성공) 2. migrate (실패...) ...?? 다시 해보았는데 안된다. 아래의 블로그 글을 보고 fake migrations을 해도 똑같다. http://ai-hub.kr/post/20/ http://ai-hub.kr/post/20/ ai-hub.kr 결론은, DJango에서 지워도 mysql에 Django models.py에서 만들어졌던 migrations 파일이 남아있기..

Django/django error 2021.05.19

Django에 MySQL 연동하기 (DB 연동)

1. 커넥터 설치 pip install mysqlclient 2. settings.py 설정 django project의 manage.py가 있는 디렉토리에서, touch my_settings.py 혹은vi my_settings.py로 새로운 파일을 생성한다. touch my_settings.py 이렇게 하는 이유는, github에 올릴때나 다른 외부로부터 개인정보, DB를 보호하기 위함이다. #1 :사용할 엔진 설정 #2 : 연동할 MySQL의 데이터베이스 이름 #3 : DB 접속 계정명 #4 : 해당 DB 접속 계정 비밀번호 #5 : 실제 DB 주소 #6 : 포트번호 #my_settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my..

Django/응용 2021.05.19

Python 이용하여 Mysql에서 Json 데이터 Insert하기 (json 데이터 삽입)

geoJSon 데이터를 Python을 이용하여 Mysql에 삽입해보자 일반적인 python mysql 핸들링 순서는 다음과 같다. 패키지설치 PyMySql 모듈 import pymysql.connect() 메소드를 사용하여 MySQL에 연결. 호스트명, 포트, 로그인, 암호, 접속할 DB 등을 파라미터로 지정 MySQL 접속이 성공하면, 위에서 만든 Connection 객체로부터 cursor() 메서드를 호출하여 Cursor 객체를 가져옴 - Cursor: SQL 구문을 실행하기 위해서 만드는 객체 (Executes a SQL statement.) SQL 쿼리의 경우 Cursor 객체의 fetchall(), fetchone(), fetchmany() 등의 메서드를 사용하여 서버로부터 가져온 데이터를 코드..

DataBase/Mysql 2021.05.18

[QGIS] LineString 을 Point 로 변환하기 (Convert a Line to Point)

도로명 주소 데이터를 받아왔지만, Line형식으로 되어있어 이것을 라인을 따라가는 포인터로 변환하고자 한다. 1. MMQGIS 검색결과 MMQGIS 플러그인을 이용하여 변환할 수 있을 것 같다. 설치해보자 플러그인 설치에서 mmqgis를 설치해보자 그러면 도구창에 새롭게 mmqgis가 생기고 Nodes 가 Point 형식인지는 모르겠지만,, 일단 해보았다. 결과 Line이 Point 객체로 변환이 되긴 했는데 뭔가 띄엄뜨엄한 곳이 존재한다. Naver 지도 레이어를활성화 해서 보면 2. Locate Points along lines 플러그인 이용하기 새로운 방법을 해보고 더 괜찮은 데이터를 사용해보기로 했다. 플러그인 - Locate points along lines이라는 괜찮은 이름을 찾았다 설치를완료..

QGIS(지리정보) 2021.05.16

[Django] Python hexagon grid (Map 공간 일정 간격으로 규격화 하기, hexgrid)

졸업작품으로 안전한 보행길 경로를 찾아주는 지도 프로젝트를 만들고 있는데.. 우리 세상은 알고리즘처럼 2차원 배열이나 노드의 집합이 아니기때문에.. 지도를 일정한 간격으로 규격화해야했다. 이 부분이 굉장히 힘들었는데 기록으로 남겨놓으려한다. 방법 1. 출발지와 목적지의 좌표를 계산하여 사각형 범위를 구한다. ( = Map Size ) 2. 범위를 2차원 배열처럼 규격화한다(?) 3. 해당 범위내에서 적합한 경로를 찾는다(??) ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 2번 방법을하기위해 많은 고민을 했는데 첫번째. 2차원 배열처럼 정사각형으로 해당 범위를 규격화하기. → 실제 지도는 이동가능한 공간이 뒤죽박죽 삐뚤빼뚤이기 때문에 적합하지 않다고 생각했다. 두번째. 육각형의 hexgon grid로 규격화하기 ..

[Leaflet] Django에 Leaflet Marker 표시하기(Point Array)

졸업작품으로 Leaflet.js를 이용해서 map을 만드는 중 DB에 저장된 가로등 좌표를 Point로 받아와 지도위에 marker 표시를 해줄려고 한다. 1. DB에 저장된 좌표 중 범위 설정해서 가져오기 lamp = Lamp.objects.filter(lon__range=(endx,startx),lat__range=(endy,starty)).order_by('lat') # lamp.order_by('lon') print("가로등 개수 : ",len(lamp)) plist=[] for l in lamp : # print(l.lon) point=[float(l.lon),float(l.lat)] plist.append(point) Django의 filter 템플릿을 이용해서 DB에 저장된 좌표중 필요한 데..

[Django] GeoJson 파일 파싱하기 (Json이란 무엇일까?)

지난번에 도로명주소 전자지도 데이터를 사용하기 위해서 shp -> json 형식의 파일로 변환해 주었다. thalals.tistory.com/24?category=476043 QGIS shp 파일 좌표계 변환, Gson 데이터 변환(직렬화) 도로명 주소 전자지도 데이터를 다운받으면, 해당 지역의 많은 shp파일을 확보할 수 있다. 이 데이터를 활용하기 위해서는 좌표계를 GRS80 UTM-K기준 좌표계에서 WGS 84 / Pseudo-Mercator(EPSG:3857)로 바꿔 thalals.tistory.com 이제 이 GeoJson 파일을 파싱하여 원하는 데이터만 사용할려고 한다. 그전에 JSON에 대해서 정리를 해보자 1. Json이란 Json이란, JavaScript Object Notation으로 ..

Django/응용 2021.05.10

[Git] Git 풀리퀘스트(pull request) 하기

내가 쓰기위한 Git PR 하기 방법 정리! ​ 매우매우 헷갈리고 저도 잘모르기 때문에 너무 믿지 마시고 본인이 직접 해보시며 연습해보시는걸추천드려요 ​ PR하기 위한 첫번째 1. Fork 하기 • 먼저 PR하기위한 원본 레포지토리를 ⇀ 본인의 레포지토리로 포크해 옵니다. ​ • 그 후에 본인 레포지토리에서 git clone 을 해줍니다. $ git clone https://github.com/본인레포주소.git $ git clone https://github.com/본인레포주소.git • 그 다음에 로컬저장소에 원격 저장소(fork 해온 레포)를 추가합니다. 원본 프로젝트 저장소 (직접 추가 필요) fork한 로컬 프로젝트 (origin이라는 별명으로 기본으로 추가되어 있다. 따로 추가할 필요 없음) ..

Git 2021.05.07

[Github] Git 명령어 정리 (Git cheatsheet)

내가 볼려고 쓰는 깃 명령어 정리 어느정도 순서대로 정리했다고 보면 됩니다. ​ ​ CLI (Command Line Interface) 명령어 인터페이스라고 불리며, 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식을 뜻함 ​ $ git log commit한 이력을 볼 수 있음 HEAD -> main : 컴퓨터에 커밋 (HEAD: 지금 시점에 파일이 있는 위치) origin/main : github repository에 커밋 git log에서 빠져나오기 -> q 타이핑 ​ $ git status 커밋의 상태를 보여줌 ​ $ git init 버전 관리를 위한 기본 폴더를 생성하는 명령어 ​ $ git add [file name] ex) git add test.txt 파일을 추가 등록하는 명령어 ​..

Git 2021.05.07