웹개발 기초(Flask #2)

김엣취·2024년 6월 26일

웹개발

목록 보기
9/20

반복문

ffor 치면 Flask for가 뒤에 써진거 클릭해서 자동완성

{% for element in 하나씩 가져올 곳 %}
            {{ element|e }}
{% endfor %}

-> 리스트의 요소를 하나씩 들고올 수 있음

조건문

fif치면 Flask if이 뒤에 써진거 클릭해서 자동완성

{% if 조건 %}
	행동하기
{% elif 조건 %}
	행동하기
{% else %}
	행동하기
{% endif %}		// if 하나당 endif로 닫아줘야함

html파일에 이미지 삽입

body 안, 원하는 곳에 밑에 코드 넣기

<img src="{{ url_for('static', filename='이미지 경로') }}" alt="">

이미지 넣을 폴더 이름은 무조건 static으로!!

영화검색 사이트 만들기

api 이슈로 끝까지 못만듦

검색창 만들기

<form action="데이터를 보낼 곳">
	<input type="text" name="query">
	<button type="submit">검색</button>
</form>

name="query"은 데이터 이름


설명문을 보며 api 맨 뒤에도

&movieNm={query}

와 같이 넣어줌.

코드 전문

movie.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h1>영화 검색 사이트</h1>
    <form action="{{ url_for('movie')}}">
        <input type="text" name="query">
        <button type="submit">검색</button>
    </form>

    {% for movie in data %}
            <p>{{ movie|e }}</p>
    {% endfor %}
    

</body>
</html>

app2.py

from flask import Flask, render_template, request
import random
import requests
app = Flask(__name__)


@app.route('/')
def home():
    name = '이범규'
    lotto = [16, 18, 22, 43, 32, 11]

    def generate_lotto_numbers():
        # 1부터 45까지의 숫자 중에서 6개를 랜덤으로 선택하여 리스트로 반환
        numbers = random.sample(range(1, 46), 6)
        return sorted(numbers)
    random_lotto = generate_lotto_numbers()


    def count_common_elements(list1, list2):
        common_elements = set(list1) & set(list2)
        return len(common_elements)

    list1 = [1, 2, 3, 4, 5]
    list2 = [3, 4, 5, 6, 7]

        # 공통 요소 찾기
    common_count = count_common_elements(lotto, random_lotto)


    context = {
        "name": name,
        "lotto": lotto,
        "random_lotto": random_lotto,
        "common_count": common_count,
    }

    return render_template('index.html', data=context)


@app.route('/mypage')
def mypage():
    return 'This is mypage!'

@app.route('/movie')
def movie():
    query = print(request.args.get('query'))

    res = requests.get(
	f"http://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.json?key=f5eef3421c602c6cb7ea224104795888&movieNm={query}"    
    )
    rjson = res.json()
    movie_list = rjson["movieListResult"]["movieList"]

    return render_template('movie.html', data=movie_list)


if __name__ == '__main__':
    app.run(debug=True)

0개의 댓글