【发布时间】:2009-10-25 16:02:55
【问题描述】:
我是 python 新手,我正在尝试从 UI 获取用户名并查询结果以获取用户的电话簿联系人。但我无法将用户名设置为全局变量以将其用于多个查询。这是代码,我相信我在做一些语法错误/不正确的使用,请帮助纠正我的代码。
#!/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):
username = db.StringProperty(required=True)
class MyHandler(webapp.RequestHandler):
user_name = ''
def get(self):
p = db.GqlQuery('SELECT * FROM UserDetails WHERE user_name = $1', user_name)
#p = UserDetails.gql('WHERE user_name = $1', user_name)
result1 = p.fetch(1)
for itr1 in result1:
userId = itr.user_id
q = db.GqlQuery('SELECT * FROM PhoneBook WHERE user_id = :1', userId)
#q = PhoneBook.gql('WHERE user_id = :1', userId)
values = {
'phoneBookValues': q
}
self.request.out.write(
template.render('phonebook.html', values))
def post(self):
global user_name
phoneBookuserID = showPhoneBook(
user_name = self.request.get(
'username'))
self.request.out.write(user_name)
phonebookuserID.put()
self.redirect('/')
def main():
app = webapp.WSGIApplication([
(r'.*',MyHandler)], debug=True)
wsgiref.handlers.CGIHandler().run(app)
if __name__ == "__main__":
main()
这里 UserDetails 和 Phonebook 是我在 models.py
中定义的实体类请帮助我找出错误...或者在从 UI 获取用户名后,获取有关如何在查询中使用用户名的更正代码。
【问题讨论】:
-
你没有提到实际发生的事情是错误的。这会让人们更容易帮助你。
-
我确实提到了我的问题...我无法将 user_name 值从 post 方法传递到 get 方法,以便我可以使用该值进行查询。但是我不能让它成为一个全局变量来在不同的函数中访问它。