2014-04-20 3 views
1

그래서 몇 가지 벤치 마크를 통해 앱이 처리 할 수있는 요청 수를 확인했습니다. 데이터베이스 작업이 포함될 때 후속 요청을 시간 초과하기 전에 500-560 요청/초 이상을 처리 할 수 ​​없지만 데이터베이스 계층이 없으면 무작위로 1000-1100 요청/초가 될 수 있습니다.폼 값을 다음 요청으로 전달

아직 대부분의 페이지에서 db 비용을 절감하지 못했지만이 오버 헤드를 줄일 수있는 위치가 있습니다. 페이지를 편집하십시오.

나는 당신이 http://website.com/edit을 방문했을 때 실행되는 다음과 같은 견해를 가지고 있습니다. 클릭 할 때

def edit(id): 
    item = mongo.db.documents.find_one({'_id': id}) 
    doc = item.iteritems() 
    return render_template('edit.html', 
          content=item[0], 
          title=item[3], 
          url=item[2], 
          id=post[1] 
         ) 

는이 코드가 실행 : 그것이 무엇을하면 URL에 ID 매개 변수를 가져온 다음 템플릿에 반복 출력을 전달하는 DB 그것 (MongoDB를)에서 게시물을 찾을 수있다 다음과 같이 구성되어 항목 페이지에서 편집 :

{% block body %} 

    <a href="/doc/{{ url }}/">{{ title }}</a> 

    <p>{{ content }}</p> 

<div> 
<a href=delete>Delete</a> 
<a href=edit>Edit</a> 
</div> 

<form method="post" action="/post"> 
     <input type="hidden" name="id" value="{{ id }}" /> 
     <input type="hidden" name="url" value="{{ url }}" /> 
     <input type="hidden" name="title" value="{{ title }}" /> 
     <input type="hidden" name="content" value="{{ content }}" /> 

     <div> 
     <h5>Your Name :</h5> 
      <input type="text" name="name" id="add_comment_author" /> 
     </div> 

     <div> 
     <h5>Your Thought :</h5> 
      <textarea name="content id="add_comment_content"></textarea> 
     </div> 

     <input type="submit" value="Send" /> 
    </form> 

{% endblock %} 

당신이 거기에 필요한 값이 이미 숨겨진 입력이 있지만, 그들은이 의견을 사용하고 볼 수 있듯이.

이 그것이 가능한 것 또는

def edit(id): 
    #item = mongo.db.documents.find_one({'_id': id}) 
    #doc = item.iteritems() 

    doc = request.get.previous() 
    return render_template('edit.html', 
          content=doc[0], 
          title=doc[3], 
          url=doc[2], 
          id=doc[1] 
         ) 

을? :처럼에 값을 전송하기 위해 댓글을 보내기 위해 한 페이지 (하나의 POST이 을 가지고 다른 일을 할 수 있나요 편집 페이지?

아니면 플래시를 사용할 수 있습니까? 그러나 나는 그 버그에 매우 차선과 경향의 생각한다.

답변

0

일반적인 솔루션은 Flask-Cache 같은 캐싱 층과 memcached와 서버를 사용하는 것입니다 최근 액세스 한 데이터를 캐시합니다.

페이지에 편집 양식이있는 것이 좋습니다. 원하는만큼의 양식을 만들 수 있습니다. Btw 일반적인 접근 방식은 jQuery와 유사한 JS 라이브러리를 사용하여 채울 수있는 숨겨진 "템플릿"양식 만있는 것입니다.

예에서는 content 필드를 숨김으로 전달합니다. 왜? 하나는 소스를 수정하고 내용을 변경할 수 있습니다. :)