목록웹프로그래밍 (163)

수학과의 좌충우돌 프로그래밍

[Django] 17. 글 삭제 및 수정 구현하기

글 삭제 및 수정 교내 주인 없는 고양이들을 관리해줄 수 있는 사이트를 제작중이다. home.html 에 접속하면 여러 고양이들의 존재하고 각 고양이를 클릭하면 localhost:8000/detail/ 로 이동하여 detail.html 에서 상세 정보를 확인할 수 있다. 이 상황에서 고양이가 학교를 떠나서 고양이 정보를 담은 글을 삭제하거나 정보를 수정해야할 때, 어떻게 해야하는지 알아보자. [ 글삭제 ] 먼저 글을 삭제하는 기능을 구현해보자. 각 고양이를 클릭하면 detail.html 으로 이동하므로 이 안에 삭제 버튼을 넣어주자. detail.html 외적은 부분은 신경쓰지않고 단순하게 텍스트로 넣어주었다. a 태그 는 delete 라는 url 을 가진 주소로 이동하며 cat.id 를 넘겨준다. ca..

웹프로그래밍/Django 2019. 3. 24. 05:04
[css] css 선택자(selector) 의 종류와 예시

css 선택자 css 선택자란? 우리가 html 파일을 만들었다면 각각의 태그에 다르게 css 를 설정 할 것입니다. 이 때, 어느 요소에 스타일을 적용할지 알려주는 방식이 바로 css 선택자 입니다. 선택자가 어떻게 쓰이는지 확인해볼까요? div { color: black; background-color: yellow; } div 태그들에게 css 를 주기 위해서 div 라는 선택자를 사용하였습니다. 이렇게 되면 html 문서에 모든 div 태그들에는 { } 안에 적용해준 css 속성값들이 적용이 됩니다. div 처럼 태그의 이름 말고도 선택자를 주는 방식이 굉장히 다양한데 이를 알아보도록 하겠습니다. 선택자의 종류 [ 선택자를 하나만 쓸 경우 ] 전체 선택자 전체 선택자는 * 을 사용하여 나타냅니다...

웹프로그래밍/html,css 2019. 3. 24. 04:03
[crawling] 03. BeautifulSoup으로 웹 크롤링 하기

BeautifulSoup 으로 웹 크롤링하기 앞에서 우리는 이미 BeuatifulSoup 를 설치 하였고 import 가 잘 되는지도 확인해보았습니다. 혹시 BeuatifulSoup4 버젼을 설치해야한다고 했던 게 기억나시나요?그냥 BeuatifulSoup 를 설치하게 되면, 이는 BeuatifulSoup3 버젼이고 python3과 호환이 되지 않습니다. 이 점 다시 한 번 유의해주시기 바랍니다.말하는 김에 한 가지 더 유의해야 할 점이 있습니다. 우리는 우리가 원하는 정보를 얻기 위해서 각 태그에 접근을 할 것입니다. 그리고 개발자도구 를 통해 어떤 태그인지를 확인 할 것 입니다. 여기서 문제가 발생합니다. 웹 페이지는 일종의 문서이기 때문에 웹 브라우저가 이를 해석하는 방식의 차이가 있습니다. 즉 해..

웹프로그래밍/crawling 2019. 3. 22. 12:47
[crawling] 02. request를 통한 HTTP 요청 - GET

requests_get requests 이번에는 requests 라는 라이브러리를 통해서 본격적으로 데이터를 가져와보도록 하겠습니다. 위에서 HTTP 메소드에 대해서 이야기를 했었고 requests를 통해서 모든 메소드에 대해서 접근이 가능하지만 가장 많이 쓰이고 중요한 GET과 POST 에 대해서만 다뤄보도록 하겠습니다. GET 요청 데이터를 불러오는 방법은 생각보다 간단합니다. 그리고 그 간단함이 바로 requests 라이브러리의 가장 큰 장점 중 하나죠. import requests response = requests.get('http://naver.com') response.text 결과를 확인하면 아래와 같습니다. '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n..

웹프로그래밍/crawling 2019. 3. 21. 03:18
[crawling] 01.크롤링을 알기 전, HTTP

먼저 크롤링이 무엇인지 부터 알아보자. 크롤링이란 사람이 웹페이지에 접속해서 정보를 찾는 과정을 프로그램을 통해 찾아 수집하고 원하는 형태에 맞게 가공하는 모든 과정을 의미한다.크롤링에 대한 설명을 하기 전에 먼저 알아야 할 개념이 있는데 바로 HTTP이다. 아마 많이 익숙할 것이다. 우리가 웹 상에서 어느 페이지에 접속하기 위해 입력하는 주소가 대부분 http 로 시작하기 때문이다. HTTP 에 대해서 알아보자 HTTP 란? HTTP는 HyperText Transfer Protocol 의 약자로 인터넷 통신을 위해 사용되는 프로토콜이다. 또 어려운 단어가 등장했다. 그러면 프로토콜은 무엇일까? 쉽게 생각해서 컴퓨터 간의 의사소통에 사용되는 언어이다. 사람 간의 대화에서도 서로 이해할 수 있는 같은 언어..

웹프로그래밍/crawling 2019. 3. 14. 01:46
[Django] 많이들 하는 실수, html 파일의 위치

html 파일을 어느 경로에 넣어주어야 할까 그 동안 잘못된 방식으로 개발을 해와서 이를 수정하고자 한다. 잘못된 부분은 html 파일을 담아주는 경로 설정이다. 장고에서는 MTV 패턴을 따른다. 여기서 T는 templates 를 의미하며 화면 UI를 담당한다. 즉 html 파일들을 저장할 공간이다. html 파일들은 templates 디렉토리 안에 담아 장고에게 알려주는 역할을 한다. 따라서 현재까지 다음과 같은 경로에 html 파일들을 담아주었다. {앱이름}/templates/html파일 하지만 얼마 전에 이 방법이 잘못되었음을 깨달았다. 간단한 토이프로젝트에서는 이 부분이 문제를 일으킬 가능성이 적다. 그 이유는 다른 어플리케이션에 같은 이름의 html 파일이 존재해야 하기 때문이다. 장고는 이름이..

웹프로그래밍/Django 2019. 3. 11. 00:15
[Django] requirements.txt 를 통한 패키지 종속성 관리

requirements.txt 패키지 종속성 관리 intro 현재 장고 프로젝트를 진행중입니다. 둘이서 git 을 통해서 협업을 하고 있으며 각자 venv를 사용해 가상환경에서 작업을 하고 있습니다. 한 가지 문제에 봉착했는데 각자 작업을 하다보니 install 해오는 패키지가 달라 merge를 할 때마다 문제가 생겼습니다. 패키지 종속성 관리 git 을 통해 협업을 하게 되면 다음과 같은 문제에 봉착하게 됩니다. 파일들은 버젼관리가 잘되더라도, install 한 패키지는 내 환경에만 남아있기 때문이죠. 이럴 경우에는 내 환경에 어떤 패키지들을 사용하고 있나 함께 넘겨주도록 합니다. 현재 환경에서 설치한 패키지를 알려주는 명령어는 다음과 같습니다. pip freeze 그 결과 설치되어있는 패키지들을 확인..

웹프로그래밍/Django 2019. 3. 6. 17:45
[Django] 16. postgreSQL 사용하기!

안녕하세요 강민성입니다. 이번 시간에는 postgreSQL 사용에 대해서 알아보도록 하겠습니다. 우리는 여태까지 데이터 베이스를 따로 연동하지 않고도 잘 사용해왔습니다. 그 이유는, 장고는 기본적으로 sqlite 를 사용하기 때문입니다. sqlite는 여태 우리가 진행했던 소규모의 프로젝트, 토이 프로젝트 등에는 아무 문제 없지만 규모가 커지게 되면, 역부족 입니다. 이러한 이유로 사용가능한 여러 데이터 베이스가 존재합니다. 그 중에서도 postgreSQL 을 선택한 이유는 아래 이유가 같습니다. 1. 무료로 이용가능하다. 2. 설치 연동이 쉬운 편에 속한다. 3. 직관적 UI 를 가지고 있다. postgreSQL 사용하기! 지금껏 splite를 어떻게 사용해왔는지 postgreSQL은 어떻게 연동할건지..

웹프로그래밍/Django 2019. 3. 5. 15:05