GAEO de お小遣い管理(3)

第1回第2回からだいぶ間が空いてしまって、申し訳ないです。
というわけで、第3回 GAEO de お小遣い管理。
今回はユーザ情報管理「User」を作成します。


本来ならGoogleのアカウントを使ってログイン出来るようにすべきなのですが、
今回のシステムは携帯で使う事を念頭に置いています。
だから、個人的に長いGoogleのアカウントを入力したくない。
って事で専用のユーザ情報を持つことにしました。
# 指摘されましたが、確かに「かんたんログイン」を使えば良かったのかも・・・w

ユーザ情報管理「User」index.html

ユーザ情報登録画面を作成します。
場所は「/application/templates/user/」の直下です。
ユーザ名・パスワード欄をつけるだけ。

{% extends "../base.html" %}
{% block title %}おこづかい管理-ユーザ登録{% endblock %}
{% block content %}
<p>
  <form action="/user/insert" method="post">
    <fieldset>
      <legend>ユーザ登録</legend>
      <Table border="1" cellpadding="2" cellspacing="0">
        <tr>
          <th><label>ユーザ名</label></th>
          <td><input type="text" name="userNm"></td>
        </tr>
        <tr>
          <th><label>パスワード</label></th>
          <td><input type="password" name="pass"></td>
        </tr>
      </Table>
      <input type="submit" value="登録">
      <input type="reset" value="リセット">
    </fieldset>
  </form>
</p>
{% endblock %}

ユーザ情報管理「User」insert.html

登録した後のエラーメッセージ表示画面を作成します。
何か上手い事いかなかったので、別ページにしました。
場所は「/application/templates/user/」の直下です。
メッセージ表示部と、戻るリンクつけるだけ。

{% extends "../base.html" %}
{% block title %}おこづかい管理-ユーザ登録{% endblock %}
{% block content %}
<p>
	<h1>{{ errMsg }}</h1>
	<a href="#" onClick="history.back(); return false;">戻る</a>
</p>
{% endblock %}

ユーザ情報管理「User」user.py

ユーザ情報登録処理を「user.py」に作成します。
場所は「/application/controller」の直下。

# -*- coding: utf-8 -*-
from google.appengine.ext import db
from gaeo.controller import BaseController
from model.user import User

class UserController(BaseController):
    def index(self):
        pass

    def insert(self):
        errMsg = ""

        # 入力チェック
        check = False
        if len(self.params) < 2:
            errMsg = '画面遷移エラー'
        elif self.params.has_key('userNm') is False:
            errMsg = '画面遷移エラー'
        elif self.params.has_key('pass') is False:
            errMsg = '画面遷移エラー'
        elif len(self.params['userNm']) == 0 :
            errMsg = 'ユーザ名が未入力です。'
        elif len(self.params['pass']) == 0:
            errMsg = 'パスワードが未入力です。'
        else :
            check = True
        
        if check is True :
            userNm = self.params['userNm']
            passwd = self.params['pass']
            
            dat = db.GqlQuery("SELECT * FROM User")
            newUserID = dat.count() + 1
            User(userID = newUserID,
                 userNM = userNm,
                 Password = passwd).put()
            self.redirect('/savemoney')
        else :
            # エラーメッセージ表示
            self.errMsg = errMsg

何にかこの辺、ちょっと処理が不安です・・・。
ちゃんとエラーメッセージ出せるんだっけな。(ぉ

別画面になりますが、エラーメッセージは表示できます。
どうにかして画面遷移無しで表示したかったのだけど・・・。


何はともあれ、これでログインまでは出来るハズです。
次回は本体のお小遣い情報管理「SmMain」を作成します。

    • -

8/10 またもプログラム修正しました。m(_ _)m
8/11 insert.html追加、user.py全体刷新。