2009-09-18 3 views
0

나는 Werkzeug을 사용하여 WSGI 호환 응용 프로그램을 만들었습니다. 프론트 페이지의 코드를 수정하려고합니다.웹에서 파이썬 도움말

기본 아이디어는/hello URL로 이동하면 "Hello World!" 메시지./hello /에 가면 "hello!"가 표시됩니다. 예를 들어,/hello/jeff는 "Hello Jeff!"를 생성합니다. 어쨌든, 내가하려는 것은 이름을 입력 할 수있는 텍스트 상자가있는 양식을 첫 페이지에 넣는 것입니다.이 양식을/hello에 제출합니다. 그래서 "Jeff"를 입력하고 제출하면 "Hello Jeff!"라는 메시지가 나타납니다. 메시지.

그러나이 방법은 잘 모릅니다. hello 템플릿에 "name"변수를 전달해야하지만 어떻게해야할지 모르겠습니다. 여기 내 index.html :

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" 
    "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<title>Index page</title> 
</head> 

<body> 
<h1>Go to the <a href="${url_for('say_hello')}">default</a></h1> 
<form name="helloform" action="${url_for('say_hello')}" method="post"> 
<input type="text" name="name"> 
<input type="submit"> 
</form> 
</body> 
</html> 

메서드 = "get"이 예상대로 작동하지 않습니다.

답변

1

올바른 방법으로 수행하십시오. /hello?name=joe으로 가셔서 조와 인사 해주세요. 이것이 HTML/HTTP가 인 경우 작동하도록 설계된입니다! /hello URL 뒤에있는 코드는 요청에서 name 매개 변수를 얻고 요청에 따라 적절하게 응답해야합니다.

-1

'여기를 클릭하십시오'를 클릭하면 (http://werkzeug.pocoo.org/)를 제공하는 페이지 링크에서 직접 hello X 예제 코드를 얻을 수 있습니다. 당신이 누락 된 것으로 보인다 것은 : 당신의 HTML 템플릿에서

Hello ${url_values['name']|h}! 

0

HTML 양식 정적 대상 주소, action="/something"이 (가정이 요청에 대한뿐만 아니라 응답 템플릿입니다)하지만, 사용자 입력에 따라 주소를 변경하고 싶습니다. 당신은 두 가지 옵션이 있습니다

  1. 이 을 제출 양식 전에 (이름을 추가 에 의해) 변경 대상 주소로 HTML 양식에 자바 스크립트를 추가합니다.

  2. 웹 프레임 워크에 GET 또는 POST 변수를 읽고 양식을 가리키는 새로운 방법을 작성하십시오.

+0

이렇게하려면 자바 스크립트를 추가하는 것은 정말 좋은 생각입니다.그것은 귀하의 사이트 링크 (HTML과 거의 비슷 함)가 javascript (많은 수의 비활성화 된 사용자 등이 포함되어 있으며 불법적 인 차별로 간주 될 수 있음)없이 모든 브라우저에서 손상되었음을 의미합니다. –

-1

HTML은 REST 원칙을 기반으로합니다 ... 각 URL은 사람과 같은 객체 여야합니다. 사람에게 인사하는 것과 같은 행동이 아닙니다. 웹 응용 프로그램이 내부적으로 누구인지 알고있는 경우에만 해당 데이터베이스를보고 인사 할 사람을 식별하도록 URL을 지정하십시오.

웹 응용 프로그램에 Joe라는 객체가없는 경우 Joe가 포함 된 URL을 디자인하는 것이 올바른 방법이 아닙니다. 특정 웹 응용 프로그램은 사람들이 누구인지 알아 내고 그들에게 안녕하세요 메시지를 보냅니다. 그러므로, 아마도/greeter라는 URL을 하나 갖춰야합니다./greeter는 GET 또는 POST 요청 (양식)에서 보낸 정보를 찾고 인사말을 표시합니다. 인사 할 사람을 모르는 경우 찾을 양식을 표시 할 수 있습니다.

소프트웨어를 만들 때 항상 실제로 작업하고있는 개체, 즉 시스템을 구성하는 구성 요소를 생각해보십시오.