TanzDev

TIL 9 ( 로또 번호 추출기 작성) 본문

기록보드/TIL

TIL 9 ( 로또 번호 추출기 작성)

Tanz-dev 2024. 2. 10. 00:59
from flask import Flask, render_template

app = Flask(__name__)
import random

@app.route("/")
def home():
    name = "ABDYKAPAR KYZY NURZADA"
    lotto = [16, 18, 20, 23, 32, 43]

    def generate_lotto_numbers():
        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)

    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 My Page!"


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

app.py

 

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .ball {
      display: inline-block;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      background-color: #FFD700;
      color: #FFFFFF;
      text-align: center;
      line-height: 30px;
      margin-right: 5px;
    }
    .randomball {
      display: inline-block;
      width: 30px;
      height: 30px;
      border-radius: 50%;
      background-color: red;
      color: #FFFFFF;
      text-align: center;
      line-height: 30px;
      margin-right: 5px;
    }
    .coinman {
      height: 100px;
    }
  </style>
</head>

<body>
  <h1>안녕, {{ data.name }}</h1>
  <img class="coinman" src="{{ url_for('static', filename='coinman.png') }}" alt="">
  <h2>로또 번호: {{ data.lotto }}</h2>
  <h2>랜덤 로또 번호: {{ data.random_lotto }}</h2>
  <h1>로또 번호</h1>
  {% for num in data.lotto %}
  <div class="ball">{{ num|e }}</div>
  {% endfor %}

  <h1>랜덤 로또 번호</h1>
  {% for num in data.random_lotto %}
  <div class="randomball">{{ num|e }}</div>
  {% endfor %}

  {% if data.common_count == 6 %}
  <h2>{{ data.common_count }}개 맞았습니다! 로또 1등입니다.</h2>
  {% elif data.common_count == 5 %}
  <h2>{{ data.common_count }}개 맞았습니다! 로또 2등입니다.</h2>
  {% elif data.common_count == 4 %}
  <h2>{{ data.common_count }}개 맞았습니다! 로또 3등입니다.</h2>
  {% elif data.common_count == 3 %}
  <h2>{{ data.common_count }}개 맞았습니다! 로또 4등입니다.</h2>
  {% else %}
  <h2>{{ data.common_count }}개 맞았습니다! 탈락입니다.</h2>
  {% endif %}
</body>

</html>

index.html

 

 

VSCODE로 연휴동안 공부해보았다.

 

점점 더 난이도가 상승하는 와중에 첫주차와 둘째주차에 공부했던 내용과 다르게 깊이가 달라진다

기초를 더욱 더 다져두어야 함을 느꼈다.

 

※ 어떤 문제가 있었는지

- VSCODE에 FLASK 폴더 및 터미널에 .VENV가 문구가 안뜨는 문제가 발생했다.

 

※  내가 시도해본 것들

- 챗지피티와 영상을 되돌려보며 해결했다.

 

※  어떻게 해결했는지

- 우선 챗 지피티 기준으론 터미널에 .VENV가 뜨지 않더라도

 ls -a 명령어로 .venv가 나오는지 확인이 된다고했다.

 

※  무엇을 새롭게 알았는지

- vs code 프로그램을 이것저것 건드려보며 적응도가 높아지고있다!

터미널 관련 이슈가 발생한 편이었는데 이것저것 찾아보며 이해하고있다