1
我想列出在我的測試GAE應用程序中輸入到我的數據存儲中的所有用戶,並列出每個用戶的用戶名。然而,當我運行下面的代碼,我得到一個錯誤說GAE數據存儲查詢
self.query = User.all() AttributeError: type object 'User' has no attribute 'all'
我認爲self.query = User.all()
將返回所有用戶在我的數據庫?
我的代碼如下。 在此先感謝!
PS。我知道我的用戶搜索表單正在詢問用戶名,並且無所作爲,但過濾是以後的任務 - 我只是想確保我已經先完成基本查詢。
from google.appengine.ext import ndb
import webapp2
import uuid
class User(ndb.Model):
db_UID = ndb.StringProperty(indexed = True)
db_username = ndb.StringProperty(indexed = True)
db_password = ndb.StringProperty(indexed = True)
db_email = ndb.StringProperty(indexed = True)
db_resetID = ndb.StringProperty(indexed = True)
class UsersPage(webapp2.RequestHandler):
def get(self):
self.response.write('<html><body><h1>User Info Page</h1>')
self.response.write("""
<form method = "post">
Username: <input type = "textarea" name = "user_username"></input><br>
Password: <input type = "textarea" name = "user_password"></input><br>
Email address: <input type = "textarea" name = "user_email"></input><br>
<input type = "submit"></input>
</form>""")
self.response.write('</body></html>')
def post(self):
UNIQUE_ID_STRING = str(uuid.uuid1())
self.user = User(db_UID = UNIQUE_ID_STRING ,
db_username = self.request.get('user_username'),
db_password = self.request.get('user_password'),
db_email = self.request.get('user_email'))
self.user.put()
self.redirect('/user')
class UserFinder(webapp2.RequestHandler):
def get(self):
self.response.write('<html><body><h1>Search username</h1>')
self.response.write("""
<form method = "post">
Username: <input type = "textarea" name = "user_username"></input><br>
<input type = "submit"></input>
</form>""")
self.response.write('</body></html>')
def post(self):
self.query = User.all()
self.response.write('<html><body><h1>Search username</h1>')
for self.user in self.query:
self.response.write('<p>%s</p>' % self.User.db_username)
self.response.write('</body></html>')
application = webapp2.WSGIApplication([
('/user', UsersPage),
('/userfinder', UserFinder),
], debug = True)
非常感謝@Greg這樣一個清晰而有用的答案!我使用了一個教程來編寫查詢,他們在自己的代碼中使用了自我,所以我從它那裏拿了它,因爲我認爲這是必要的。我會把它們拿出來。 我已經修改我的post方法到下面的代碼,但我現在得到一個錯誤,說 查詢= User.query() UnboundLocalError:本地變量'用戶'在賦值之前引用。 我認爲查詢是在User類上作用的? 我的代碼是現在: – user2463758
DEF後(個體經營): 查詢= User.query() self.response.write( '
搜索用戶名
') 用戶查詢: self.response的。寫( '%S
'%User.db_username) self.response.write('') – user2463758嘗試重命名你的變量 '用戶' - 它可能與用戶類衝突。 – Greg