前提・実現したいこと
Flask のチュートリアルを進めています。
(参考ページ)https://study-flask.readthedocs.io/ja/latest/04.html#id3
ログイン機能の実装部分を作成したのですが、管理ユーザーを作成していなかったため、ログインができない状況です。
Queryを実行し、ユーザーの作成を試みたのですがうまくいきませんでした。
・管理ユーザーの作成方法が知りたいです。
発生している問題・エラーメッセージ
下で説明しているコマンド操作で作成したユーザー情報を入力した後の HTTP 情報です。
127.0.0.1 - - [25/Jul/2020 10:09:30] "POST /login HTTP/1.1" 200 -
該当のソースコード
python
1from sqlalchemy.orm import synonym 2from werkzeug.security import check_password_hash, generate_password_hash 3 4from flaskr import db 5 6 7class User(db.Model): 8 __tablename__ = 'users' 9 id = db.Column(db.Integer, primary_key=True) 10 name = db.Column(db.String(100), default='', nullable=False) 11 email = db.Column(db.String(100), unique=True, nullable=False) 12 _password = db.Column('password', db.String(100), nullable=False) 13 14 def _get_password(self): 15 return self._password 16 def _set_password(self, password): 17 if password: 18 password = password.strip() 19 self._password = generate_password_hash(password) 20 password_descriptor = property(_get_password, _set_password) 21 password = synonym('_password', descriptor=password_descriptor) 22 23 def check_password(self, password): 24 password = password.strip() 25 if not password: 26 return False 27 return check_password_hash(self.password, password) 28 29 @classmethod 30 def authenticate(cls, query, email, password): 31 user = query(cls).filter(cls.email==email).first() 32 if user is None: 33 return None, False 34 return user, user.check_password(password) 35 36 def __repr__(self): 37 return u'<User id={self.id} email={self.email!r}>'.format( 38 self=self) 39 40 41class Entry(db.Model): 42 __tablename__ = 'entries' 43 id = db.Column(db.Integer, primary_key=True) 44 title = db.Column(db.Text) 45 text = db.Column(db.Text) 46 47 def __repr__(self): 48 return '<Entry id={id} title={title!r}>'.format( 49 id=self.id, title=self.title) 50 51def init(): 52 db.create_all() 53 54
試したこと
$ python3 >>> from flaskr.models import User, db >>> User.query.all() [] >>> user = User(id=1, name='root', email='root1', _password='password') >>> db.session.add(user) >>> db.session.commit() >>> User.query.all() [<User id=1 email='root1'>]
上記で、ユーザーの作成ができていると認識してます。
初めての質問投稿で、至らぬ点があるかもしれないですがよろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/07/27 04:59
退会済みユーザー
2020/07/27 05:06