如何修改此示例以使用username
字段的sha256
值作为primary key
,而不是{
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
def __repr__(self):
return '<User %r>' % self.username
示例如下: http://flask-sqlalchemy.pocoo.org/2.3/quickstart/#a-minimal-application
有很多方法可以做到这一点,但最简单的方法就是在你的routes.py文件:
如你所见,这有几个部分。用户名通常是
str
,必须在上调用encode
才能成为bytes
类型。然后只要从标准库调用sha256,hexdigest
就是返回哈希值的方法。在拥有一个“unique”散列是很有用的,但是拥有一个惟一的整数id也是很有用的,这个id不会被重复,并且可以很容易地被引用到下一行。为了在
flask-shell
中调试和查找用户,通过简单整数而不是其他属性或哈希进行查找可能更容易。在这样做可能更简单:
^{pr2}$而不是对主id使用哈希
相关问题 更多 >
编程相关推荐