polls 선택 page만들기

2021. 7. 23. 03:07python/Django

728x90

<h1> {{question.question_text}} <h1>
view함수에 의해서 넘어온 질문객체가 넘어와 질문이 화면에 보인다


-양식만들기
<form action="서버쪽 프로그램을 호출하기 위한 url"
method="POST"> {% csrf_token %}<form>

-form tag를 이용할때는 거의 예외없이 method post이용 
 전달되야되는 data가 많아질수 있기 때문에 data에 제약없는 post사용
-template 할때 <form>을 이용하면 악의적인 공격에 방어하는 보안루틴
 {% csrf_token %}이 무조건 있어야한다

-질문 리스트 만들기
{% for choice in question.choice_set.all %}  
{endfor}
-question table안에 foriegn key로 (set.all) 연결된 choice의 집합항목들 다가져와
-당연히 admin page에서 choice항목을 질문별로 추가해야한다
-for문으로 객체들을 나열한다 


-vote 버튼만들기
<input type="submit" value="votes!!!">
submit은 클릭하면 자동으로 form tag내에서 사용자가 입력한 내용을 server에게 전달하는 버튼

 

value는 내용

submit:제출하다   -data전송을 위해
value : 들어갈문장


- 목록만들기
<input type="radio" name="myChoice" 
 value="aaa" id="choice1">
<label for="choice1">서울</label>

<input type="radio" name="myChoice" 
 value="bbb" id="choice2">
<label for="choice2">대구</label>

<input type="radio" name="myChoice" 
 value="ccc" id="choice3">
<label for="choice3">부산</label>


-input type="radio"는 동그란 체크박스
-name="아무거나" 를 주지 않으면 그룹으로 묶이지 않아 radio버튼이 중복체크 된다
- label : 문자를 클릭해도 radiobox가 클릭된다
- id & label for 가 같은이여야 연결이 된다
- value : -사용자가 선택한 값이 server쪽으로 data를 넘기기 위해 사용,
- value는 -이 항목 선택했구나.. 를 알리기 위해 pk인 id사용

-data를 넘길때 dic형식으로 넘어가는데 이때 key값은 name , val = 값
 

-------------------------!!!!!
목록을 만든걸 보면 반복문을 돌릴수 있는데 
내용이 변경되는 부분과 아닌부분이 있다 이럴때
변경되는 내용에 {{ forloop.counter }}를 입력해서 반복문을 돌리면
숫자가 1개씩 증가한다



결과
<h1>{{ question.question_text }}</h1>


    <form action="서버쪽 프로그램을 호출하기 위한 URL"
          method="POST">

        {% for choice in question.choice_set.all %}
            <input type="radio" name="myChoice"
                   id="choice{{ forloop.counter }}" value="{{ choice.id }}">
            <label for="choice{{ forloop.counter }}">
                {{ choice.choice_text }}
            </label>
            <br>
        {% endfor %}

        <input type="submit" value="Votes!!!">

'python > Django' 카테고리의 다른 글

data 삭제 후 만들기  (0) 2021.07.26
polls 결과page만들기  (0) 2021.07.26
polls 질문page 만들기  (0) 2021.07.23
url cof , view  (0) 2021.07.22
admin page에 model(data) 등록하기  (0) 2021.07.21