2014-11-20 3 views
1

단일 텍스트 영역을 보여주는 간단한 양식을 추가하고 싶습니다.CherryPy가있는 간단한 양식

사용자가 양식을 제출할 때 데이터의 유효성을 검사하는 기능을 호출하고 정교하게 작성해야합니다.

나는이 방법으로 페이지에서 양식을 추가 한 : getnote와

<td><form method = "get" action = "getnote"> <input type="text" name="note"/> <button type="submit"><img src="/img/validate.jpg" width="20" height="20" /></button></form></td> 

내가 유효성을 확인하고 DB에 저장하는 기능의 getnote (주)를 호출하고 싶습니다. 그런 다음

내가 가진 : 로컬 호스트에서 다음

class HelloWorld(object): 
@cherrypy.expose 
def index(self): 
    return "Hello world!" 


@cherrypy.expose 
def getnote(self, note): 
    #check and save 
getnote.exposed = True 

@cherrypy.expose 
def HomeP(self): 

    Session = sessionmaker() 
    session = Session(bind=engine) 


    template = loader.load('index.html') 
    title = "Home page" 
    ctx = Context(title=title) 
    return template.generate(ctx).render('html', doctype='html') 

이/HomeP 형태가 나는 양식을 작성하여 제출하면 브라우저 나에게 경로의 오류를 보여 제대로 보여 주었다있다 "HomeP/getnote/"가 없습니다. 하지만 getnote를 함수가 아닌 페이지라고 부르기를 원합니다!

나는이 자습서를 따라했지만 어쩌면 내가 놓친 것이 있습니다 : http://cherrypy.readthedocs.org/en/latest/tutorials.html#tutorial-4-submit-this-form

감사

답변

0
당신은 정말 당신이 처리 기술의 기초를 배울 필요가

가. 그리고 StackOverlow의 기본은 좋은 질문을하기 때문에 다른 사람들에게 이해할 수 있고 유용합니다.

브라우저에 현재 경로 이름을 추가하도록 지시하는 상대 양식 작업 action='getnote'이 있습니다. 이것이 /HomeP/getnote/에 제출 된 양식을받는 이유입니다. 대신 절대 동작을 사용하십시오 (action='/getnote').

""하지만 getnote를 페이지가 아닌 함수로 호출하고 싶습니다! "는 말도 안되는 소리처럼 들리지만 어디서부터 안내 할 것인지 생각합니다. AJAX에 대해 배우면 결국 양식을 배경으로 보낼 수 있습니다.

+0

아직 배우고 있습니다! 게시 된 링크의 자습서를 계속 따르고 있습니다. 따라서 필자는 필자가 작성한 예제를 복사하여 붙여 넣으면 내 프로그램을 시작하면 그 이유가 무엇인지 이해할 수 없습니다. – user2174050

+0

@ user2174050 제목을 모른 채 복사하여 붙여 넣는 것은 나쁜 습관이기 때문입니다. CherryPy와는 아무런 관련이 없습니다. HTML 양식이 상대적인''action'' URL로 제출하는 방법입니다. 튜토리얼에서 양식은''/''(''index'' 메소드)에 있으며,이 경우''action = generate''는'/ generate' 액션 URL로 연결됩니다. 귀하의 경우 양식은''/ HomeP''에 있고,''action = getnote''는''/ HomeP/getnote''로 연결됩니다. – saaj