flask werkzeug.routing.BuildError 질문드립니다!

조회수 1231회

![이미지][1]

@app.route('/',methods=['GET','POST'])
def index():
    user_name = None
    login_error=None
    numOfPage=None
    listOfPage=None

    numOfPage = request.args.get('page')  
    if numOfPage is None:
        numOfPage = '1'
    numOfPage = int(numOfPage)
    if numOfPage<1:
        numOfPage = 1

    keyword = None
    keyword = request.args.get('keyword')

    start, end = 0, 0
    if numOfPage >= 3:
        start = numOfPage -2
    else:
        start = 1
    end = start + 4
    listOfPage = list(range(start, end + 1))

    if isLogin():
        user_name=session['user_name']
        render_template('header.html', user_name=user_name)
        return render_template('index.html', user_name=user_name,login_error=login_error, numOfPage=numOfPage, listOfPage=listOfPage, keyword=keyword)
    else:
        if request.method=='POST':
            email = request.form['email']
            password = request.form['password']
            params = (email, password)

            con=sqlite3.connect('mydatabase')
            cur=con.cursor()
            cur.execute('''
                SELECT user_id, user_name FROM users WHERE email=? AND password=? AND isUsing='Y';
                ''', params)
            rows = cur.fetchall()
            con.close()
            if len(rows)==1:
                session['user_id'] = rows[0][0]
                session['user_name']=rows[0][1]
                return redirect(url_for('index'))
            else:
                login_error='login failed'
                return render_template('index.html',  user_name=user_name, login_error=login_error, numOfPage=numOfPage, listOfPage=listOfPage, keyword=keyword)
        else:
                return render_template('index.html',  user_name=user_name, login_error=login_error, numOfPage=numOfPage, listOfPage=listOfPage, keyword=keyword)   

render_template 쪽에 문제가 있는지 제대로 웹이 만들어 지지 않습니다ㅜ

//index.html
{% include 'head.html' %}

<body>
  <div class="container">
    {% include 'header.html' %}
    <div class="container-fluid text-center">
      <div class="row content">
        <div class="col-sm-2 sidenav">
          {% if user_name %} {% include 'islogin.html' %} {% else %} {% include 'default.html' %} {% endif %}
        </div>
        <div class="col-sm-8 text-left">
          <ul class="pagination" id='board_pagination'>
            <li class="page-item">
              <a class="page-link" href="{{ url_for('index', page=numOfPage-1) }}">
                <<</a>
            </li>
            {% for pn in listOfPage %}
            <li class="page-item {% if pn==numOfPage %}active{% endif %}">
              <a class="page-link" href="{{ url_for('index', page=pn) }}">{{ pn }}</a>
            </li>
            {% endfor %}
            <li class="page-item">
              <a class="page-link" href="{{ url_for('index', page=numOfPage+1) }}">>></a>
            </li>
          </ul>
        </div>
        <div class="col-sm-2 sidenav">
          <form class="form-inline" method="GET">
            <input type="search" class="form-control" name="keyword">
            <input type="submit" class="btn btn-dark mx-2" value="검색">
            </button>
          </form>
          {% if user_name %}
          <a class="btn btn-dark mx-2" href="{{ url_for('board_submit') }}">글 등록</a>
          {% endif %}
        </div>
      </div>
    </div>
    {% include 'footer.html' %}
  </div>
  <script>
    $(document).ready(function () {
      // initialize

      // 게시판 글목록 페이지 가져오기
      console.log("{{numOfPage}}", "{{keyword}}");
      $.get("{{ url_for('board_list', page=numOfPage, keyword=keyword) }}".replace("&amp;", "&"), function (data, status) {
        // console.log("Data: " + data + "\nStatus: " + status);
        $("#board_list").html(data);
      });
    });
  </script>
</body>

</html>

인덱스 코드는 이렇게 되고 느낌상 jinja2에서 뭔가 걸리는거 같은데 정확한 원인을 잘 못찾겠습니다..

//header.html
<nav class="navbar navbar-inverse">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">Logo</a>
        </div>
        <div class="collapse navbar-collapse" id="myNavbar">
            <ul class="nav navbar-nav">
                <li class="active">
                    <a href="{{ url_for('index') }}">Home</a>
                </li>
                {% if user_name %}
                <li>
                    <a href="{{url_for('board_submit')}}">글쓰기</a>
                </li>
                {% else %}
                <li>
                    <a href="{{ url_for('user_signup')}}">회원가입</a>
                </li>
                {% endif %}
                <li>
                    <a href="mailto:abledk9901@gmail.com">Contact</a>
                </li>
            </ul>
        </div>
    </div>
</nav>
</nav>
  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)