교육 11일차 강의

구성본·2022년 3월 31일
post-thumbnail

1. 학습한 내용

핵심은 데이터 요청과 보내는 코드

from flask import Flask, request, redirect
-import는 다른 프로그램에서 데이터를 불러오는걸 의미
-애플리케이션은 생성 읽기 수정 삭제가 전부다.

-flask에서 app route('/?/')로 데이터를 요청, return 값으로 응답
-liTags라는 변수를 정의, 변수를 {liTags}에 넣는다.
-topics의 데이터를 topic이란 이름으로 꺼내서 li태그를 만들어서 기존의 liTags에다가 추가해서 목록으로 만든다.

@app.route('/create/')
def create():
 content = '''
 <form action="/create_process/" method="POST">
   <p><input type="text" name="title" placeholder="title"></p>
   <p><textarea name="body" placeholder="body"></textarea></p>
   <p><input type="submit" value="create"></p>
 </form>  
 '''
 return template(content) 
#template = 견본, 현판이라는 뜻

-template 함수 = 호출 당하는 부품 = 프레임워크
-서버로 데이터를 전송= form태그
-사용자 입력을 받는 여러가지 태그들, 행위 후 submit을 했을 때 action
-아무 처리하지 않으면 get방식으로 처리, method POST를 get값으로, 이러면 url이아닌 POST방법으로 데이터 전송
-post 방식으로 전송된 데이터를 받으려면 request 사용
-tile, body 값을 읽고, topics에 데이터 추가하기 위해 newtopics 만들고 데이터 설정
-새롭게 추가되는 id의 값을 nextId로 설정하고 값 4를 부여.(4번째니까)
-nextId에 +1을 해서 다음값을 준비
-append를 사용해 제일 끝에 원소를 추가
-nexId는 함수 밖에서 정의된 것이기 때문에 수정불가. global 사용해서 수정 가능케
-redirect를 통해 사용자를 f'/read/{nextId-1}/'으로 튕겨보내면서 생성한 글 보기 가능

@app.route('/create_process/', methods=['POST']) #get방식을 거부, post방식만 실행
def create_process():
  global nextId  
  title = request.form['title']
  body = request.form['body']
  newTopic = {"id": nextId, "title": title, "body": body}
  topics.append(newTopic)
  nextId = nextId + 1 
  return redirect(f'/read/{nextId-1}/')

-생성된 글을 delete태그를 통해 삭제 가능
-delete 버튼을 생성, post 방식으로 지정

<li>
	<form action="/delete/{id}/" method="POST">
		<input type="submit" value="delete">
	</form>  
</li>
@app.route('/delete/<int:id>/', methods=['POST']) #get도 받을 수 있기 때문에 s 붙임
def delete(id):
  for topic in topics:
    if topic['id'] == id:
      topics.remove(topic)
      break;
  return redirect('/')

데이터베이스

-1970년대부터 시작된 데이터베이스
-수많은 웹시스템의 등장으로 데이터의 폭발적인 등장, 관리 필요 => 데이터베이스
-관계형, 계층형, 문서형...etc 데이터베이스 (주류는 관계형)
-지난 50년동안 단 한번도 패러다임의 강자 자리를 놓치지않은 관계형 테이터베이스
-정보 산업의 심장 = 데이터베이스
-최근엔 인공지능 쪽으로 시선이 몰려있으나 데이터베이스는 가장 본질적인 분야
-SQL = structured 구조화된 = 표 query language
-관계형데이터베이스 = 엑셀을 심화한 것 = 표
-제어할 때는 SQL문을 통해 명령어로 표를 제어할 수 있다
-topics.sqlite3 = topics라는 데이터베이스 생성

2.학습내용 중 어려웠던 점.

  • 각 태그가 어떻게 구동되는지 왜 필요한지 강의들을때는 휙휙 넘어가서 이해하기가 쉽지 않았다.

3.해결방법

  • 강의를 마친 후 다시 강의를 천천히 돌려보면서 하나씩 뜯어보니 이렇게 이렇게 해서 이렇게 된다 라는 개념을 알 수 있었다. 강의를 새로 돌려보면서 이해해야겠다. 하지만 아직도 혼자 하라면 못할것 같다.

4.학습소감

  • 오늘은 어제보다 강의를 뜯어보면서 진행하니 이해하는게 나은 것 같다. 이전까지의 강의에서 이해하기 힘들었던 부분들을 새로이 뜯어보고 일지 작성을 해봐야 할 것 같다.
profile
코딩공부중

0개의 댓글