본문 바로가기
개발

[Django] lotto - 앱 다듬기

by 마스터누누 2017. 6. 28.
728x90
반응형

lotto - 앱 다듬기



1
url(r'^lotto/(?P<lottokey>[0-9]+)/detail/$', views.detail, name = "lotto_detail"),
cs


전반적인 과정을 끝이났고 추가적인 기능을 구현해보자.

우선 디테일 페이지를 구현하기 위해 urls.py를 수정한다.

위의 코드는 숫자로 구별해서 디테일 페이지와 연결하는 것이다.


이 숫자를 파라미터로 전달하기 위해서는

(?P<변수이름>전달할값)과 같은 문법을 사용한다.





1
2
3
def detail(request, lottokey):
    lotto = GuessNumbers.objects.get(pk = lottokey)
    return render(request, "lotto/detail.html", {"lotto": lotto})
cs


따라서 이 url과 연결하기 위한 view의 detail 함수를 만들어 준다.

url에서 전달 받은 값은 2번째 인자에서 부터 넣어줄 수 있다.

이렇게 받은 키값은 primary key이므로 GuessNumbers의 많은 인스턴스들로 부터

해당 primary key의 값만 추출하여 lotto에 저장할 수 있다.

이렇게 받은 값을 detail.html로 전달해 주자




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!DOCTYPE html>
{% load staticfiles %}
<html lang="ko">
<head>
  <title>My Little Lotto</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
  <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css">
  <link href="//fonts.googleapis.com/css?family=Space+Mono" rel="stylesheet">
  <link rel="stylesheet" href="{% static 'css/lotto.css'%}">
</head>
 
<body>
  <div class="page-header">
  <h1>My Lotto Page</h1>
  </div>
  <div class="container lotto">
    <h2>{{lotto.text}}</h2>
    <p> by {{lotto.name}}</p>
    <p> {{lotto.update_date}}</p>
    <p> {{lotto.lottos|linebreaksbr}}</p>
  </div>
</body>
</html>
cs


다음으로 detail.html을 추가해 준다.






1
2
3
4
5
6
<div class="page-header">
<h1>My Lotto Page
  <a href="{% url 'new_lotto' %}"><span class="glyphicon glyphicon-plus btn btn-default"></span></a></h1>
</div>
 
<h2><a href="{% url 'lotto_detail' lottokey=lotto.pk %}">{{lotto.text}}</a></h2>
cs


그리고 추가한 default.html을 수정한다.

먼저 로또를 추가할 수 있는 new_lotto 링크 버튼을 추가한 한다.


그리고 해당 로또 값을 클릭하면 'detail'이라는 이름을 가진 url값으로 넘어가고

lottokey라는 lotto.pk도 함께 전달한다.




출처 : 인프런, 파이썬 웹 프로그래밍, Django로 웹 서비스 개발하기


반응형

'개발' 카테고리의 다른 글

[Django] sns - 로그인과 로그아웃 구현하기  (0) 2017.06.30
[Django] sns - 앱 초기화  (0) 2017.06.29
[Django] lotto - POST 처리  (0) 2017.06.28
[Django] lotto - form 만들기  (0) 2017.06.28
[Django] lotto - MTV 연동하기  (0) 2017.06.28

댓글