3

私はweb2pyを見始めたばかりなので、ビューのデフォルトの使用など、アプローチの多くのことがnweです。私は人々にログインさせる方法を理解するために何時間も費やし、最終的には

@auth.requires_login()

コントローラメソッドの開始時。これにより、魔法のように登録フォームが表示され、その後、新しいユーザーがログインしました。舞台裏で何が起こっているのか完全にはわかりませんが、一度に1ステップずつです。

ただし、ログアウトボタンを提供したいのですが、それがどのように実現されるかわかりません。明らかに、どういうわけかデフォルトのログアウトを呼び出す必要があります。したがって、送信フォーム/ボタンにURLを追加し、おそらくURLに一致するコントローラーを作成する必要がありますが、ログアウトする方法はどのようになりますか?

userメソッドにはexposuresステートメントがありますが、それらが何を意味するのか、またはそれらをどのように使用するのかはわかりません。それらすべての点は私を混乱させます。

4

1 に答える 1

4

人々をログインさせる方法を見つけるのに何時間も費やしました

本のこのセクションを読みましたか。ログイン機能を公開するため@auth.requires_login()のデフォルト関数の使用方法とその仕組みについて説明します (必要に応じて、ログイン専用の別のアクションを作成する方法も説明します)。user()スキャフォールディング アプリケーションでは、default.py コントローラーに次のuser()関数が含まれており、すべての Auth アクションを公開しています。

def user():
    return dict(form=auth())

「/myapp/default/user/[action]」のような URL では、要求された Auth アクション (つまり、URL の最後の要素) が request.args[0] で利用可能になります。上記の関数が を呼び出すauth()と、Auth__call__()メソッドは request.args[0] からアクションを読み取り、適切な Auth メソッドを呼び出します。URL が「/myapp/default/user/login」の場合、auth()最終的にauth.login()メソッドが呼び出され、ログイン フォームが返されます (およびその処理が処理されます)。auth.login()独自のカスタム ログイン アクションを作成する場合は、直接呼び出すこともできます。

同様に、URL "/myapp/default/user/logout" は最終的にauth.logout()メソッドを呼び出し、ユーザーをログアウトします。したがって、ログアウトを有効にしたい場合は、ログアウト URL へのリンクを生成するだけです。最適な方法は、次のURL()関数を使用することです。

A('Logout', _href=URL('default', 'user', args='logout'))

scaffolding アプリケーションでは、layout.html ビューを使用auth.navbar()してページの右上に Auth ナビゲーション バーを挿入することに注意してください。ユーザーがログインすると、ナビゲーション バーには上記のような「ログアウト」リンクが自動的に含まれます。

于 2012-06-10T14:22:52.443 に答える