2

ローカルコンピューターでWeb2pyを使用してアプリを作成し、SQLiteを使用してWSGI経由で実行しています。自分のドメインを使用し、必要なすべてのURL書き換えを行うことで、アプリをGoogleAppEngineに正常にデプロイできます。

ここで、いくつかのテーブルの更新を担当する特定の管理ユーザーを作成する方法が必要です。

具体的な質問:

  1. アプリケーションがGAEで実行されているときにWeb2py管理インターフェースを使用する方法はありますか?
  2. ニュースアプリケーションを作成したりファイルを編集したりしたくない場合でも、Google App Engineで実行されているアプリケーションのデータベースを管理するためだけにWeb2py管理インターフェースを使用することはできますか?
  3. そうでない場合、GAEでWeb2pyを使用するときに、この種のユーザー管理はどのように行われますか?
4

1 に答える 1

6

これまでGAEを使用したことはありませんが、通常、db.pyで次のような操作を行って初期管理ユーザーを作成します。

def check_initialize():
    if not db().select(db.auth_user.ALL).first():        
        db.auth_user.insert(
            username = 'administrator',
            password = db.auth_user.password.validate('admin1234')[0],
            email = 'null@null.com',
            first_name = 'System',
            last_name = 'Administrator',
            is_admin = True,
        )

# do initialization check
cache.ram('db_initialized', lambda: check_initialize(), time_expire=None)

「is_admin」はauth_userテーブルに追加したフィールドですが、「administrators」という新しいauth_groupレコードを簡単に追加してから、「auth.add_membership(」を使用して新しいユーザーを「administrators」グループに追加することもできます。 1、1)」。

管理機能の場合、web2py管理者を機能させることができない場合(HTTPSで実行するようにweb2pyを設定した場合に可能になるはずです)、次のようなものを使用していつでも独自のエディターを作成できます。

def users():
    form = SQLFORM.grid(db.auth_user)
    return dict(form=form)

これにより、すべてのユーザーを一覧表示するグリッドコントロールが作成され、ユーザーを追加および削除できるようになります。db.auth_groupとdb.auth_membershipに対して同じことを行うことができます。ただし、少し調整する必要があるかもしれません。または、 InstantAdminまたはBadminのようなものをいつでも使用できます。

于 2012-04-18T13:12:51.930 に答える