質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1807閲覧

【Google App Engine】データベースへの格納と取り出し

退会済みユーザー

退会済みユーザー

総合スコア0

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

4グッド

4クリップ

投稿2015/10/20 14:03

Google App Engine 上でDjangoを動かしてホームページを作るに沿って、Google App Engineを勉強しています。
投稿をデータベースに保存していって、それを表示する掲示板のようなものを作るという内容です。

この中で、フォームに適当に打ち込むと、「posted!」と表示されるところまではうまくいきました。
しかし、その次の、データベースに入力して、データベースの内容を表示させるところでつまづきました。

フォームで、「hello」と打ち込むと、
「TypeError: Expected Model type; received hello (is unicode)」というエラーが出てきてしまうのです。
上記サイトのとおりにやったつもりなのですが、どこが悪いのか分かりません。

python

1#main.py 2 3#!/usr/bin/env python 4#-*- coding: utf-8 -*- 5 6from google.appengine.dist import use_library 7import os 8os.environ['DJANGO_SETTINGS_MODULE']='settings' 9import django.core.handlers.wsgi 10from google.appengine.ext import db,webapp 11from google.appengine.ext.webapp import util 12from google.appengine.ext.webapp.template import render 13from google.appengine.ext.webapp.util import run_wsgi_app 14 15class Greeting(db.Model): 16 content = db.TextProperty() 17 18class MainHandler(webapp.RequestHandler): 19 def get(self): 20 greetings = db.GqlQuery('SELECT * FROM Greeting') 21 values = { 22 'greetings':greetings 23 } 24 self.response.out.write(render('main.html',values)) 25 def post(self): 26 greeting = Greeting(self.request.get('content')) 27 greeting.put() 28 self.redirect('/') 29 30application = webapp.WSGIApplication([ 31 ('/',MainHandler), 32], debug=True)

これは、そもそもデータベースへの格納の時点でうまくいっていないのでしょうか。
それとも、データベースからの取り出しの時点でうまくいっていないのでしょうか。
どこに問題がありそうかお分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。

yterpu, TmNm_Bigger, av-👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

参考にしてるページが古いかもしれません。Modelクラスの第1引数はparentだと思います。

python

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

↑を↓にするとどうなりますか。

python

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

投稿2015/10/21 06:33

Lhankor_Mhy

総合スコア35865

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/10/21 12:58

ありがとうございました。ご指摘のとおりでできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問