如何在Google云平台的数据存储中存储值?

2024-05-19 17:39:15 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我目前正在使用谷歌留言簿示例应用程序,这是一个全新的应用程序

我想做的是创建一个文本框,让用户输入一个主题,以及一个下拉菜单,其中有一个场合列表以及一条要在留言簿上签名的消息

我在HTML索引文件中添加了这个,如下所示。这可以很好地工作,并在页面上显示内容

<div class="subject-area">
    <label for="subject">Subject:</label>
    <textarea id="subject" name="subject" rows="1"></textarea>
    </div>

    <div class="occasion-area">

    <label for="occasions">Choose an Occasion:</label>
        <select id="events">
        <option value="Christmas">Christmas</option>
        <option value="New Year">New Year</option>
        <option value="Easter">Easter</option>
        <option value="Australia Day">Australia day</option>
        </select>
    </div>

在我的python应用程序中,我为数据存储的主题和场合添加了新的类

class Subject(ndb.Model):

subject = ndb.StringProperty(indexed=False)

class Occasion(ndb.Model):

occasion = ndb.StringProperty(indexed=False)

现在我想将主题和时机值存储到数据存储中,但当我转到数据存储时,它没有显示在图像链接1中的实体。我试图得到这些价值观,但似乎不起作用

greeting.subject = self.request.get('subject')
    greeting.put()

    greeting.occasion = self.request.get('occasion')
    greeting.put()

一旦我提交了所有的价值观(信息、主题、场合),我想在提交后在页面上显示所有价值观,但还不确定如何做到这一点

以下是我的页面到目前为止的样子-2


Tags: 数据div应用程序主题value页面labelclass
1条回答
网友
1楼 · 发布于 2024-05-19 17:39:15

不确定为这两者创建一个类(ocassions和subject)是否正确(您可能只想在问候语类中添加字符串)。不管怎样,让我们把重点放在主题上,看看你们遗漏了什么:

  1. 您仍然需要在Greeting类上映射这两个类:

    班级问候语(ndb.Model):

     author = ndb.StructuredProperty(Author)
     content = ndb.StringProperty(indexed=False)
     date = ndb.DateTimeProperty(auto_now_add=True)
     subject = ndb.StructuredProperty(Subject)
     occassion = ndb.StructuredProperty(Occasion)
    
  2. 将转让包括在 def post(自我)post方法:

     greeting.content = self.request.get('content')
     greeting.subject = Subject(
                       subject=self.request.get('subject'))
     greeting.occassion = Occasion(
                       occasion=self.request.get('event'))
     greeting.put()
    

*注意“事件”在创建“场合”对象时,它应该与“事件”selecthtml标记的“名称”属性相匹配

  1. HTML标记应位于中<;表格…>并应如下所示:

&13; 第13部分,;
<form action="/sign?guestbook_name={{ guestbook_name }}" method="post">
        <div class="subject-area">
        <label for="subject">Subject:</label>
        <textarea id="subject" name="subject" rows="1"></textarea>
        </div>
        <div class="occasion-area">
        <label for="occasions">Choose an Occasion:</label>
            <select id="events" name="event">
            <option value="Christmas">Christmas</option>
            <option value="New Year">New Year</option>
            <option value="Easter">Easter</option>
            <option value="Australia Day">Australia day</option>
            </select>
        </div>
        <div><textarea name="content" class="input-block-level" rows="3"></textarea></div>
        <div><input type="submit" class="btn btn-large btn-primary" value="Sign Guestbook"></div>
 </form>
和#13;
和#13;
  1. 使用jinja2语法在html上打印值:

&13; 第13部分,;
<div class="container">
  <!  [START greetings]  >
  {% for greeting in greetings %}
  <div class="row">
    {% if greeting.author %}
      <b>{{ greeting.author.email }}
        {% if user and user.user_id() == greeting.author.identity %}
          (You)
        {% endif %}
      </b> wrote:
    {% else %}
      An anonymous person wrote:
    {% endif %}
    <blockquote>{{ greeting.subject.subject }}</blockquote>
    <blockquote>{{ greeting.occasion }}</blockquote>
    <blockquote>{{ greeting.content }}</blockquote>
  </div>
  {% endfor %}
和#13;
和#13;

使用1和2,您将正确地将值存储在数据存储中,您可以在Console上查看它>;数据存储>;实体。使用3和4,您将能够与前端的值进行交互

相关问题 更多 >