Я новичок в питоне. Я не могу сделать запрос из сущностей - UserDetails и телефонной книги, загруженных в хранилище данных ядра приложения. Я написал этот пользовательский интерфейс ниже на основе видео-ролика youtube от Бретта на тему: «Разработка и развертывание приложений в GAE» - приложение для кричания. Что ж, я просто попытался сделать реверс-инжиниринг для запроса из хранилища данных, но на каждом этапе не получилось.
#!/usr/bin/env python
import wsgiref.handlers
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.ext.webapp import template
import models
class showPhoneBook(db.Model):
""" property to store user_name from UI to persist for the session """
user_name = db.StringProperty(required=True)
class MyHandler(webapp.RequestHandler):
def get(self):
## Query to get the user_id using user_name retrieved from UI ##
p = UserDetails.all().filter('user_name = ', user_name)
result1 = p.get()
for itr1 in result1:
userId = itr.user_id
## Query to get the phone book contacts using user_id retrieved ##
q = PhoneBook.all().filter('user_id = ', userId)
values = {
'phoneBookValues': q
}
self.request.out.write(
template.render('phonebook.html', values))
def post(self):
phoneBookuser = showPhoneBook(
user_name = self.request.get('username'))
phoneBookuser.put()
self.redirect('/')
def main():
app = webapp.WSGIApplication([
(r'.*',MyHandler)], debug=True)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == "__main__":
main()
Это мой файл models.py, в котором я определил свои классы UserDetails и PhoneBook,
#!/usr/bin/env python
from google.appengine.ext import db
#Table structure of User Details table
class UserDetails(db.Model):
user_id = db.IntegerProperty(required = True)
user_name = db.StringProperty(required = True)
mobile_number = db.PhoneNumberProperty(required = True)
#Table structure of Phone Book table
class PhoneBook(db.Model):
contact_id = db.IntegerProperty(required=True)
user_id = db.IntegerProperty(required=True)
contact_name = db.StringProperty(required=True)
contact_number = db.PhoneNumberProperty(required=True)
Вот проблемы, с которыми я сталкиваюсь,
1) Я не могу вызвать user_name
(полученный из UI-- phoneBookuser = showPhoneBook(user_name = self.request.get('username'))
) в методе get (self) для запроса UserDetails, чтобы получить соответствующий user_name
.
2) Код не может распознавать классы UserDetails и PhoneBook при импорте из файла models.py.
3) Я попытался определить классы UserDetails и PhoneBook в самом файле main.py, в них я получаю сообщение об ошибке result1 = p.get()
, говоря BadValueError: Unsupported type for property : <class 'google.appengine.ext.db.PropertiedClass'>
Я боролся с 2 неделями, чтобы справиться с беспорядком, в который я попал, но тщетно. Пожалуйста, помогите мне исправить мой код (потому что я чувствую, что я все время пишу код, подверженный ошибкам).