Como definir seu primary key autoincrement no AppEngine/Python?

Há, digamos, a classe de artigos, as instâncias que são armazenados na гугловском data сторадже. E quero dar a ela o link:

[ a href="/article/{{ article.uid }}" ]

Para obter o tipo esse:

[ a href="/article/55" ]

Pro google tem seus UUID's, mas dolorosamente eles tem medo de ser parte da urla: ahBzb3ZpZXRncm9vdmVibG9ncg0LEgdBcnrpy2xlgagm.


Answers 2:

Share:


MEME GOD
Answer 1

Isso já está realizado. Além das teclas BigTable distribui e numérico de identificação. Consulta ao banco de dados de id:
Model.get_by_id()
Para obter o id de qualquer entidade entity.key().(id)

Ele é bastante adequado para url, apenas lembre-se de que o id инкриментится para entidades de qualquer tipo em seu aplicativo. Um para todos. Portanto, o número saem grandes. Por exemplo, www.arhimir.ru/news/1126006 — feito no GAME-Python.


Brandi B Campbell
Answer 2

provavelmente terá que usar um modelo:

class Sequence(db.Model):
    Key: db.StringProperty() #ключ, например "ArticleId"
    Number: db.IntegerProperty(default=1) #само значение

e o significado é — o que em uma transação, primeiro obtemos o valor de Number, e, imediatamente depois, atualizando-o no +1