Day 055
Udemy Python Bootcamp Day 055
HTML & URL Parsing in Flask
Working Flask URL Paths and the Flask Debugger
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
# Different routes using the app.route decorator
@app.route("/bye")
def bye():
return "Bye!"
# Creating variables paths and converting the path to a specified data type
@app.route("/username/<name>/<int:number>")
def greet(name, number):
return f"Hello there {name}, you are {number} years old!"
if __name__ == "__main__":
# Run the app in debug mode to auto-reload
app.run(debug=True)
debug=True
를 이용해서 * Debug mode: on
으로 만들어서 파일 수정후 저장하여 page frresh하면 수정된 사항 바로 확인할 수 있음.
Rendering HTML Elements with Flask
Flask actually accepts HTML in the return.
@app.route('/')
def hello_world():
return '<h1 style="text-align: center">Hello, World!</h1>' \
'<p>This is a paragragh.</p>' \
'<img src="https://nationaltoday.com/wp-content/uploads/2020/07/Kitten-640x514.jpg" width=200px>'
gif
도 똑같이 적용할 수 있음
def make_bold(function):
def wrapped_function():
return "<b>" + function() + "</b>"
return wrapped_function
def make_italic(function):
def wrapped_function():
return "<em>" + function() + "</em>"
return wrapped_function
def make_underline(function):
def wrapped_function():
return "<u>" + function() + "</u>"
return wrapped_function
@app.route("/bye")
@make_bold
@make_italic
@make_underline
def bye():
return "Bye!"
하씨,,, 에러나서 한참 찾았는데 이것저것 시도해보다가 다시 하니까 됨,,,
Advanced Decorators with *args and **kwargs
## Advanced Python Decorator Functions
class User:
def __init__(self, name):
self.name = name
self.is_logged_in = False
def is_authenticated_decorator(function):
def wrapper(*args, **kwargs):
if args[0].is_logged_in == True:
function(args[0])
return wrapper
@is_authenticated_decorator
def create_blog_post(user):
print(f"This is {user.name}'s new blog post.")
new_user = User("angela")
new_user.is_logged_in = True
create_blog_post(new_user)
args[0]
is going to take that first position input and then see if it is logged in property is equal to true.
Exercise
# Create the logging_decorator() function 👇
def logging_decorator(function):
def wrapper(*args):
print(f"You called {function.__name__}{args}")
print(f"It returned: {function(args[0], args[1], args[2])}")
return wrapper
# Use the decorator 👇
@logging_decorator
def a_function(num1, num2, num3):
result = num1 * num2 * num3
return result
a_function(1, 2, 3)
얼추 비슷하게 했음..
여기까지는 만들었는데
print(f"You called {function.__name__}{args}")
에서 {args}
라고 붙일 생각은 못하고 ()
로 넣으려다 보니까 계속 에러났었음
def a_function
에서 입력받는 값은 int
이기 때문에 형변환 필요없음
The Higher Lower Game
from flask import Flask
import random
random_number = random.randint(0, 9)
app = Flask(__name__)
@app.route('/')
def home():
return '<h1>Guess a number between 0 and 9</h1>' \
'<img src="https://media.giphy.com/media/3o7aCSPqXE5C6T8tBC/giphy.gif">'
@app.route('/<int:number>')
def check_number(number):
if number < random_number:
return '<h1 style="color=red;">Too low, try again!</h1>' \
'<img src="https://media.giphy.com/media/jD4DwBtqPXRXa/giphy.gif">'
elif number > random_number:
return '<h1 style="color=purple;">Too high, try again!</h1>' \
'<img src="https://media.giphy.com/media/3o6ZtaO9BZHcOjmErm/giphy.gif">'
else:
return '<h1 style="color=green;">You found me!</h1>' \
'<img src="https://media.giphy.com/media/4T7e4DmcrP9du/giphy.gif">'
if __name__ == "__main__":
app.run(debug=True)
나 진짜 이거 스스로 적고 테스트하는데 또 오류나서 기다렸다가 다시 했는데
403에러는 안뜨는데 number입력하면 화면이 안뜨는겨,,,
그래서 솔루션을 봤는데
randint(0, 9)
를 choice(range(0, 9))
로 적은거 말고는
내꺼랑 똑같아..!!!!!!
근데 왜 안될까,,,,
진짜 미쳤나봐....
"color=green;"
에서 마지막 "
빼먹었음.... 그리고 corret page에서 src
인데 scr
라고 씀... 진짜..... 노답이다
이제 잘됩니다.....
Author And Source
이 문제에 관하여(Day 055), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@awesomee/Day-055저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)