Вопрос по python, google-app-engine, jinja2, user-profile, webapp2 – создавать постоянные уникальные ссылки на основе идентификатора пользователя [дубликат]

0

Possible Duplicate:
create unique profile page for each user python

Я использую google appengine с python и jinja2 и пытаюсь дать каждому пользователю в моем приложении уникальный URL-адрес на страницу его профиля, которую может посетить любой пользователь без входа. Вот мой код на данный момент:

class ProfilePage(webapp2.RequestHandler):
  def get(self, profile_id):
    user = User.get_by_id(profile_id)
    #profile_id = some unique field
    if user:
       #Get all posts for that user and render....
       theid = user.theid
       personalposts = db.GqlQuery("select * from Post where theid =:1 order by created desc limit 30", theid)
    else:
        personalposts = None
    global visits
    logout = users.create_logout_url(self.request.uri)
    currentuser = users.get_current_user()
    self.render('profile.html', user = currentuser, visits = visits, logout=logout, personalposts=personalposts)

app = webapp2.WSGIApplication([('/', MainPage),
                               ('/profile/([0-9]+)', ProfilePage),])

Когда я пытаюсь проверить это, это просто дает мне ошибку 404. Я полагаю, если код правильный, я могу использовать неправильный URL-адрес тестирования. Например, если это их OpenID ID: Как я могу проверить это, я попытался просто ввести www.url.com/profile/https://www.google.com/accounts/o8/id?id=AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56 будет просто id = & quot; эта часть & quot; будь то, что я положил, чтобы у меня было:

url = www.url.com/profile/AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56

Это то, что я пробовал, и это не совсем работало. Заранее спасибо за помощь!

Ваш Ответ

2   ответа
1

r'^/profile/\w*?-(\d+)$'

Хотя я также должен сказать вам, что это очень плохая идея!

это плохо только потому, что тогда кто-нибудь может положить туда что-нибудь? exployre
Вы используете параметризованный запрос, так что это не проблема. Просто не используйте это значение где-либо еще (например, не отображайте его на странице).
1

AItOawlILoSKGNwU5RuTiRtXug1l8raLE45g-56) последняя часть URL является полным ключом к объекту, в то время как в коде вы используете идентификатор объекта для его загрузки (используя get_by_id ()).

это не секретный URL, я хочу, чтобы он был общедоступным. в этом вся причина того, что каждый может это увидеть exployre
где я это делаю? Я не совсем уверен, что это значит ... exployre

Похожие вопросы