-2

,當我在我的形式進入1933年作爲COPYRIGHT_YEAR,我發現了以下錯誤:值錯誤無效的字面INT()基數爲10

File "C:\programming_google_app_engine_repo\datastore\main.py", line 29, in post book.copyright_year = int(self.request.get('copyright_year')) ValueError: invalid literal for int() with base 10: '1933 1655'

爲什麼會出現這個錯誤?

main.py

import webapp2 
import jinja2 
import os 

from google.appengine.ext import db 

jinja_environment = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.path.dirname(__file__))) 

class MainPage(webapp2.RequestHandler): 
    def get(self):   

     book_query1 = Book.all() 
     shakespeare_books = book_query1.filter("author =", "William Shakespeare") 

     template_values = { 
      'shakespeare_books': shakespeare_books,    
     } 

     template = jinja_environment.get_template('index.html') 
     self.response.out.write(template.render(template_values)) 


class BookStore(webapp2.RequestHandler): 
    def post(self): 
     book = Book() 
     book.title = self.request.get('title') 
     book.author = self.request.get('author') 
     book.copyright_year = int(self.request.get('copyright_year'))  
     book.put() 
     self.redirect('/')  


class Book(db.Model): 
    title = db.StringProperty() 
    author = db.StringProperty() 
    copyright_year = db.IntegerProperty() 



app = webapp2.WSGIApplication([('/', MainPage), 
           ('/new_book',BookStore)], debug=True) 

的index.html

<html> 
    <body>      
     <form action="/new_book" method="post">   
      <label for="title">Title</label> 
      <div><textarea name="title" rows="1" cols="20" id="title"></textarea></div> 
      <label for="author">Author</label> 
      <div><textarea name="author" rows="1" cols="20" id="author"></textarea></div> 
      <label for="copyright_year">Copyright Year</label> 
      <div><textarea name="copyright_year" rows="1" cols="20" id="copyright_year"></textarea></div>   
      <div><input type="submit" value="Submit"></div> 
     </form> 

     {% for books in shakespeare_books %}      
       <b>{{ books.title }}</b> 
       <b>{{ books.author }}</b> 
       <b>{{ books.copyright_year }}</b>    
       <hr></hr>   
     {% endfor %} 
    </body> 
</html> 

回答

1

你是從請求得到的字符串是:"1933 1655",不"1933"如你所說。

您的網頁以某種方式發送錯誤的日期。在你的網站上是否有驗證碼,或者根據日期格式來設置日期?

+0

+1謝謝,你是對的。我也沒有驗證碼。 – Anthony 2013-03-21 23:10:02

相關問題