gpt4 book ai didi

python - Google App Engine 教程中的这段代码发生了什么

转载 作者:太空宇宙 更新时间:2023-11-04 11:05:33 25 4
gpt4 key购买 nike

import cgi

from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db

class Greeting(db.Model):
author = db.UserProperty()
content = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)

class MainPage(webapp.RequestHandler):
def get(self):
self.response.out.write('<html><body>')

greetings = db.GqlQuery("SELECT * FROM Greeting ORDER BY date DESC LIMIT 10")

for greeting in greetings:
if greeting.author:
self.response.out.write('<b>%s</b> wrote:' % greeting.author.nickname())
else:
self.response.out.write('An anonymous person wrote:')
self.response.out.write('<blockquote>%s</blockquote>' %
cgi.escape(greeting.content))

# Write the submission form and the footer of the page
self.response.out.write("""
<form action="/sign" method="post">
<div><textarea name="content" rows="3" cols="60"></textarea></div>
<div><input type="submit" value="Sign Guestbook"></div>
</form>
</body>
</html>""")

class Guestbook(webapp.RequestHandler):
def post(self):
greeting = Greeting()

if users.get_current_user():
greeting.author = users.get_current_user()

greeting.content = self.request.get('content')
greeting.put()
self.redirect('/')

application = webapp.WSGIApplication(
[('/', MainPage),
('/sign', Guestbook)],
debug=True)

def main():
run_wsgi_app(application)

if __name__ == "__main__":
main()

我是 Python 的新手,看这个 Google App Engine 教程代码时有点困惑。在 Greeting 类中,content = db.StringProperty(multiline=True),但在 Guestbook 类中,greeting 对象中的“content”然后设置为 greeting.content = self.request.get('content')。

我不明白如何在 Greeting 类和 Guestbook 类中设置“content”变量,但似乎保留了这两个语句的值和属性。

最佳答案

第一段代码是模型定义:

class Greeting(db.Model):
content = db.StringProperty(multiline=True)

它说有一个模型 Greeting,它有一个名为 contentStringProperty

在第二段代码中,您创建了一个Greeting 模型的实例并为其content 属性赋值

greeting = Greeting()
greeting.content = self.request.get('content')

编辑:在评论中回答您的问题:这是基本的面向对象编程(或 OOP),带有一点 Python 的特殊功能(描述符和元类)。如果您不熟悉 OOP,请阅读 this article更熟悉这个概念(这是一个复杂的主题,OOP 上有整个库,所以不要在阅读一篇文章后理解所有内容)。您实际上不必知道描述符或元类,但有时它会派上用场。这是一个 good introduction到描述符。

关于python - Google App Engine 教程中的这段代码发生了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1470405/

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