문제
새로운 프로젝트 생성
장고 프로젝트로 만들기
앱 하나 추가
URL 3개 추가
함수 3개 추가
GET방식으로 숫자 2개를 전달받고
두 수의 곱을 출력 후 func1.html을 보내주는 함수
func2.html을 보내주는 함수
func2.html에는 서버에게 숫자 2개를
전달하는 form 태그 작성
POST방식으로 숫자 2개를 전달 받고
두 수의 곱을 출력 후 func3.html을 보내주는 함수
templates 폴더를 만들고 그안에 html파일 3개를 만든다
func1.html을 보내주는 함수 3개를 만들어야 하는데 각 func은 해당하는 html과 연결
urls.py 에서 path에서 path('url아무거나',test.views.func1) 같은 형태로 url과 views의 함수들을 연결
페이지에 잘 나오는지 확인
이제 함수 나머지 부분 추가
func1은 GET방식으로 숫자 두개를 받아오기 때문에
def func1(abcde) :
var1 = abcde.GET.get('var1',None)
var2 = abcde.GET.get('var2', None)
print(int(var1) * int(var2))
return render(abcde, 'q01/func1.html')
이런형태로 만든다
get은 메쏘드이다 왜냐하면
get('num1') 도 되고 get('num2', 0) 됨
즉 유연하게 할 수 있기때문에 메쏘드 오버로딩이기 때문임
GET은 객체
즉 GET이라는 객체 안에 get이라는 메소드가 있는것
func2는
def func2(abcde) :
return render(abcde, 'q01/func2.html')
이게 끝이고 html을 작성해야함
func2.html로 가서
form태그를 만든다
<form method="post" action="/q01/func3">
{% csrf_token %}
<input type="text" name="var1">
<input type="text" name="var2">
<input type="submit">
</form>
method 에는 겟 or post인데 여기서는 post에 해당 그후 action은 어떤 url로 이동할지 말하고 그안에 input값과 submit을 만든다.
폼이 장고의 보안에 어긋나지 않기 위해 {% csrf_token %}를 form안에 작성
submit을 누르면 우리가 얻은 input값이 action에 적은 url로 이동
func3
숫자를 전달 받는 코드를 작성
def func3(abcde) :
var1 = abcde.POST.get("var1", None)
var2 = abcde.POST.get("var2", None)
print(var1)
print(var2)
print(int(var1) * int(var2))
return render(abcde, 'q01/func3.html')
이렇게 하면 끝