Sparta Coding Club/웹개발 종합반 [항해 99]

웹개발 종합반, 왕초보 시작반 4주차. Flask? Post? Get?

김쨔뿌 2021. 8. 11. 15:23

...뭐부터 써야하지??

 

일단.. Flask

로컬 개발환경 만드는 법을 .araboza

 

파일 구성은 아래와 같다.

 

누가 이거 보고 venv에도 하위에 머 생선된다구욘~ 할 수도 있겠지만 (그전에 아무도 이걸 안볼거같다.) 

다른 에디터는 모르겠고, 파이참은 그걸 자동생성해주니까 뺐다. 

파란색은 나중에 파이참에서 생성해주는 것들이다.

 

프로젝트 파일은 아무폴더나 미리 만들어주고 파이참을 실행시키자.

File > New Project

이런 창이 하나 뜬다. 

최상단 Location 에서 파일버튼을 눌러 미리 생성해둔 프로젝트 파일을 지정해준다.

그 아래 Location 에서 파일 루트의 맨 뒤에 venv 가 있는지 확인하고 없다면 그냥 적어서 추가한다.

설치한 파이썬이 3.8 이상인지 확인하고

맨 아래 Create a main.py welcome script 는 체크 해제해주고... Create

 

작업중인 프로젝트가 있다면 이전에 window 어쩌구 창이 뜬다.

작업중인걸 유지하고싶다면 new window, 작업중인걸 닫아도 되면 this window 를 클릭해주자. 

 

노트북이 구려서 그런지 로딩이 좀 걸린다...

 

처음 프로젝트를 생성하는거면 아래와 같이 뜬다.

venv 파일이 잘 생성되었다.

솔직히 저게 뭣하는 파일인지는 모르겠고, 튜터님이 건들지 말라했으니 방치하면 될것같다.

이제 나머지 하위 파일들을 생성하면 된다!

 

프로젝트 폴더 우클릭 > New 

뭔가 많다. 

 

저기에서 Directory 를 눌러 하위 폴더인 static 폴더와 templates 폴더를 생성하고

Python File 을 눌러 app.py 를 생성해주자. 

 

그리고 생성한 templates 폴더 우클릭, New를 클릭, HTML File 을 눌러 index.html 을 생성해주자. 

 

결과물

파일 준비는 이게 끝이다.

이미 생성해둔 프로젝트를 연다면 File > Open 을 하자.

 

그 다음 File > Settings 에 들어가서 'Projects:생성한 프로젝트명' > Python interpreter+ 버튼을 눌러 Flask 패키지를 추가한다.

 

이제 app.py 를 작성해줘야한다..

 

from flask import Flask, render_template
app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html') #index.html 로 연결해준다.

if __name__ == '__main__':
    app.run('0.0.0.0',port=5000,debug=True) #호스트를 정해준다.

 

여기에 원하는걸 추가하면 된다!

 

그럼 GET 과 POST 를... .araboza...

 

GET = 고갱님께 보여줄 정보를 데이터뱅크에서 가져오자

POST = 고갱님이 데이터뱅크에 정보를 넣거나 편집한다

 

대충 이런 느낌이다. 

이걸 쓰려면 패키지를 또 설치해야한다.

 

requests, bs4, pymongo 를 설치해준다. 

 

app.py 에는 이렇게 적어주면 된다. 

from flask import Flask, render_template
app = Flask(__name__)

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.db이름

@app.route('/')
def home():
    return render_template('index.html')     

@app.route('/test', methods=['GET'])
def test_get():
    getSample_receive = request.args.get('getSample_give')
    return jsonify({'result':'success', 'msg': '이 요청은 GET!'})

@app.route('/test', methods=['POST'])
def test_post():
    postSample_receive = request.form['postSample_give']
    return jsonify({'result':'success', 'msg': '이 요청은 POST!'})

if __name__ == '__main__':
    app.run('0.0.0.0',port=5000,debug=True) 

 

이제 정말 저기에 넣고싶은걸 추가하면 된다.

 

4주차에서 튜터님의 수업을 들으며 작업한건 총 두가지로

하나는 네이버 영화 페이지에서 특정 영화 소개페이지의 링크를 가져오면 내가 만든 페이지에 영화의 이름, 이미지, 링크와 소개문구가 자동으로 올라오도록 만든 것이고

또 다른 하나는 input 창에 내용을 넣고 저장버튼을 누르면 하단에 input 창에 넣은 내용이 뜨는 것이다.

이 두개의 공통점은 사용자가 웹페이지에 넣은 정보를 토대로 데이터뱅크를 이용하여 사용자가 넣고자하는 정보를 웹페이지에 표시하는 것..이다!

 

숙제는 외부링크를 사용하지 않았다.

폼에 맞춰 작성한 뒤 주문하기 버튼을 누르면 하단에 입력한 이름, 수량, 주소, 전화번호가 뜬다.

 

....이렇게 또 하나를 끝냈다..!

이제 5주차 들으러간다... 항해99 시작하기전에 어서 공부해야만..ㅠ