gpt4 book ai didi

python |应用引擎 : What is the bug in my code that is preventing me from getting output as "Welcome, (username of the person)"?

转载 作者:行者123 更新时间:2023-12-01 05:14:25 25 4
gpt4 key购买 nike

绝对是一个初学者问题。我试图将输出设为“欢迎,(该人的用户名)”(例如,欢迎,约翰)。但我得到的输出只是“欢迎”。任何帮助将非常感激。

import webapp2
from google.appengine.ext import db
import os
import jinja2

template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir),
autoescape = True)

def render_str(template, **params):
t = jinja_env.get_template(template)
return t.render(params)

class BaseHandler(webapp2.RequestHandler):
def render(self, template, **kw):
self.response.out.write(render_str(template, **kw))

def write(self, *a, **kw):
self.response.out.write(*a, **kw)



class Name(db.Model):
username = db.StringProperty(required=True)


class MainHandler(BaseHandler):
def get(self):
self.render('input.html')
def post(self):
username = self.request.get('username')
a = Name(username=username)
a.put()

self.redirect('/welcome')


class WelcomeHandler(BaseHandler):
def get(self):
username = self.request.get('username')

self.render('welcome.html', username = username)



application = webapp2.WSGIApplication([
('/', MainHandler),
('/welcome',WelcomeHandler)
], debug=True)

最佳答案

您的欢迎处理程序实际上从未尝试从数据存储中提取数据...它从请求中获取用户名 - 如果您通过重定向到达那里,它将类似于self.redirect('/welcome?username=...').

当然,这实际上并不是您想要做的事情。通常,您需要在数据存储条目上附加某种句柄,以便稍后将其拉出。在这种情况下,您可能需要使用 users服务:

from google.appengine.api import users
from google.appengine.ext import ndb # Note, I'm using ndb rather than db

class Name(ndb.Model):
username = ndb.StringProperty()

class MainHandler(BaseHandler):
def get(self):
self.render('input.html')
def post(self):
user = users.get_current_user()
username = self.request.get('username')
a = Name(id=user.id(), username=username)
a.put()

self.redirect('/welcome')

class WelcomeHandler(BaseHandler):
def get(self):
user = users.get_current_user()
key = ndb.key(user.id())
name_entity = key.get()
self.render('welcome.html', username=name_entity.username)

关于 python |应用引擎 : What is the bug in my code that is preventing me from getting output as "Welcome, (username of the person)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23509298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com