が動作していないが、問題read.htmlテンプレート内でこのhtmlコードですか?このハイパーリンクはapp.yamlのlogin: required
を迂回しますか?
(<a href ="/edit/{{ blog_id }}/{{ r.key().id() }}">edit </a>)
更新
私のapp.yamlには、いくつかのlogin: required
ディレクティブが含まれていますが、彼らは私がGAE上でローカルに開発していながら、アクセスを停止していないようです。
application: myapp
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /static
static_dir: static
- url: /.*
script: main.app
- url: /create.*
script: main.app
login: required
- url: /createblog.*
script: main.app
login: required
- url: /editblog.*
script: main.app
login: required
私のアプリのview.pyは次のように始まります。下部に向かって、テンプレートedit.html
がトリガーされることに注意してください。しかし、私はログインしたユーザーだけがそのテンプレートにアクセスしたいと思っています。私は、ログインしていないユーザーにログインする機会が与えられても気にしません。
import os
import jinja2
import webapp2
from google.appengine.ext import db
from google.appengine.api import users
TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), 'templates')
JINJA_ENVIRONMENT = jinja2.Environment(
loader=jinja2.FileSystemLoader(TEMPLATE_DIR),
extensions=['jinja2.ext.autoescape'],
autoescape=True)
class BaseHandler(webapp2.RequestHandler):
@webapp2.cached_property
def jinja2(self):
return jinja2.get_jinja2(app=self.app)
def render_template(
self,
filename,
template_values,
**template_args
):
template = JINJA_ENVIRONMENT.get_template(filename)
self.response.out.write(template.render(template_values))
class EditReminder(BaseHandler):
def get(self, blog_id, reminder_id):
iden = int(reminder_id)
reminder = db.get(db.Key.from_path('Blogs',blog_id,'Reminders', iden))
self.render_template('edit.html', {'reminder': reminder, 'blog_id': blog_id})
The answer here is informative, but ...
a)は私の理解では、答えは「静的」私はテンプレートが供給された神社の入力があるという意味で、私のテンプレートを好きではないされていると仮定したファイル、および
を参照しているということですb)テンプレートが「静的」なファイルであっても、回答の推奨事項をどのように実装するかはわかりません。
これで、これらの機能はどのように動作するのですか?
どのように動作していないと判断しましたか? localhostにすでにログインしている場合、Cookieはそこに残ります。/_ah/loginにアクセスし、強制的にログアウトし、何が起こるかを見てください。 – Greg
'/ _ah/login'にアクセスすると、「ログインしていません」というダイアログが表示され、ログインまたはログアウトに招待されます。私は他のクッキーをチェックする方法を知らない。私はlocalhostを使用しています。 – zerowords