본문 바로가기

Programming/Python

(파이썬) 언리얼 엔진 과 flask 서버 연동하기 -1

https://youtu.be/X_n6IZmieV8?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y

 

우선 기초적으로 flask 웹 프레임 워크를 가장 기초부터 차근히 알려주는 생활 코딩에서 배우기 시작 했다.

 

웹 페이지를 만드는 작업 중에 많은 부분은 공통 적인 부분이 있고 이런 작업을 미리해둔 소프트웨어를

웹 프레임 워크(Web Framework)

 

파이썬의 전용 웹 프레임 워크는 flask라고 한다.

 

 

기본적으로 flask 서버는 5000번 포트를 사용하고 만약 이것을 사용하고 싶다면

5000번을 끄고 새로 시작하거나 아니면 다른 포트로 시작해야한다.

 

 

https://youtu.be/HjIeLsfYe08?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y

 

사용자 접속이 들어올때 마다 랜덤 값을 리턴하는 예시

 

 

아직 이 함수에서는 string타입 이외의 데이터 타입을 리턴 할 수없어서 이런식으로 강제 캐스팅을 해줘야 오류가 나지 않는다.

 

파이썬 flask 웹 프레임 워크를 사용해 동적으로 HTML,CSS 주는 방법, Apostrophe(')Quotation marks("")를 적절히 사용해서 오류를 방지 하면 된다.

 

https://youtu.be/iLBwWFrxpV0?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y

홈페이지, 아이디가 1인 주소, 생성하는 주소, 수정하는 주소 등이 있는데 각각의 주소에서 들어오는 요청을 처리할 담당자가 있어야 하는데 

어떤 주소를 어떤 담당자가 응답 할 것인가  어떤 요청을 어떤 함수가 응답 할 것인지 연결하는 작업을 "라우팅"Routing

문서를 보면 내 코드에 있는 route라는 함수를 설명하고 있다.

강의에서는 ('/')의 의미는 사용자가 path(경로)를 입력하지 않으면 밑에 정의한 함수를 실행하라라고 지정

즉 아마 홈페이지를 칭하는것 같다.

 

사용자가 /hello를 입력 했을때는 밑에 있는 함수가 응답

 

 

위에 read를 가변적으로 바꾸는 방법

이런식으로 경로 id를 입력받아 유동적으로 처리 할 수 있다.

 

이 값들을 리스트에 담는다.

f를 붙여서문자열을 변수와 같이 섞어줌

보면 변수를 {} 중괄호로 감싸서 스트링값과 같이 쓸수 있게 한거같다. 앞에 꼭 쓰기전에 f를 붙여줘야 하지만

#&lt, &gt를

여기서 쓰는지도 모르고 원인을 해결할려함 ㅠ

flask는 비쥬얼 스튜디오에서 디버깅 할때 따로 json설정을 해야하며

포트도 디버깅용은 다른걸 쓴다.

 

여기서 반복되는 html 코드를 간략화하기 위해 탬플릿을 추천했지만 일단 초보자를 위해 그냥 함수화를 한다고함

 

이 부분을

 

이렇게 바꾸면됨 읽기 기능, 중복을 template화 

 

 

 

https://youtu.be/wT16kB6CPT8?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y

 

 

 

 

 

 

 

이번 단원 에서는 Create(쓰기)를 알아본다.

쓰기를 할려면 쓰기를 할 페이지 링크(유동적인 버튼이) 어딘가 있어야 한다고 한다.

 

서버쪽으로 본문(텍스트)값을 입력 받아 처리하게끔 만들어주는 코드

 

이 구조로 짜주면 알아서 HTML 바디에 입력을 받게끔 하는 text창을 생성

 

우리가 입력한 값이 서버로 전송 될 때 입력 태그가 필요하다는것 같다. 

 

그냥 서버로 전송 할 때 구별 할수 있는 변수 값들을 새로 추가한 격이라고 이해하면 될 꺼 같다.

 

이 form 태그는 사용자가 입력한 정보를 서버로 전송, Action은 서버의 어떤 경로로 전송 할 것인가,

name 이란 값은 각각의 전송 텍스트를 구간을 어떤 이름으로 전송 할것인가 

보면은 title = 내용 & body = 내용으로 구성되어 있다.

 

지금 우리가 전송한 데이터는 데이터가 URL안에 포함됨

URL을 통해 서버로 전송하는 방식을 get방식

 

하지만 우리가 할려는 것은 값을 읽어오는 Get이 아니라 쓰는거기 떄문에 Post 방식을 사용함

(이 method를 안 썼을때 기본 방식 Get)을 사용한다고 한다.

 

URL 안에 입력 데이터가 들어가 있으면 안되기 때문에 method ="POST"를 사용한다고 함

이렇게 하면 

payload 라는것 안에 이렇게 은밀하게 전송된다고함

 

정리하면 사용자가 데이터를 변경 할때면 method를 post로 하고

데이터를 가져올때 GET을 쓴다고함

 

https://youtu.be/ZKkQ3RG3DtQ?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y

 

여러분들이 링크를 클릭하거나 URL을 직접 클릭하면 GET 방식으로 접근한거고

Route에 특별한 처리를 하지 않으면 이건 GET 방식만 처리를 할 수 있다.

POST방식으로하면 애러가뜸

 

이런식으로 지정해야 POST로 데이터를 전송 할 수 있음

 

사용자가 GET 방식으로 오면 입력하는 구간을 보여주고

사용자가 POST 방식으로 데이터를 전송하면 데이터를 추가하는 로직을 짜고 싶음

 

request.method를 통해서 flaks는 요청한것이 GET 인지 POST인지 구별 할 수 있다.

 

 

우선 동적으로 이렇게 코드를 작성하고 전역 변수를 쓸때는 실행하기전에 글로벌 전역변수란것을 저렇게 알려줘여 한다고 한다.

 

1. 글로벌 변수 nextId를 만듬

2. Create Route 함수에 method가 아닌 methods = ['GET','POST']로 잘 설정

3. request, redirect를 flask에서 잘 임포트 해주고 

request.method를 통해 PoST인지 GET에 따라 조건문을 만들어 실행여부 결정

 

5.포스트를 하면 이렇게 title = request.form['name = 에 입력한값으로'] 저장

6. newTopic 으로 딕셔너리에 어펜드할 딕셔너리를 만들어줌

알아서 append

7. 알아서 다시app.route('/read/<int:id>/')를 실행시키기위해 다시 redirect(url) 실행

 

 

수정 기능 구현

https://youtu.be/eAifC2_4VQk?list=PLuHgQVnccGMClNOIuT3b3M4YZjxmult2y

 

 

Read에서는 아이디 값을 Template을 리턴할때 넣을거지만

Create나

Index에서는 안 넣는다면 어떻게 해야할까?

구별하기위해 이렇게 지정되지 않으면 Default값으로 None을 지정해 줄수있다.

'Programming > Python' 카테고리의 다른 글

파이썬 flask 와 언리얼 연동-2  (0) 2024.07.19