we need pip install "Flask-User<0.7" first.
then write app.py:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_user import login_required, UserManager, UserMixin, SQLAlchemyAdapter
db = SQLAlchemy()
app = Flask(__name__)
app.config['SECRET_KEY'] = 'thisisalkesdf'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db.init_app(app)
app.config['CSRF_ENABLED'] = True
app.config['USER_ENABLE_EMAIL'] = False
db = SQLAlchemy(app)
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), nullable=False, unique=True)
password = db.Column(db.String(255), nullable=False, server_default='')
active = db.Column(db.Boolean(), nullable=False, server_default='0')
db_adapter = SQLAlchemyAdapter(db, User)
user_manager = UserManager(db_adapter, app)
@app.route('/')
def index():
return '<h1>This is the home page!</h1>'
@app.route('/profile')
@login_required
def profile():
return '<h1>This is the protected profile page!</h1>'
if __name__ == '__main__':
app.run(debug=True)
create db as below:
C:\Users\zhuby>python
Python 3.8.3 (tags/v3.8.3:6f8c832, May 13 2020, 22:37:02) [MSC v.1924 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from app import db
>>> db.create_all()
then you start app with: python app.py
you can open http://127.0.0.1:5000/ and register ID to access http://127.0.0.1:5000/profile
(if you remove @login_required then you don’t need login)