· 5 years ago · Sep 28, 2020, 01:28 PM
1login.html
2
3 <form action="{{url_for('login')}}" method="post">
4 <input type="text" id="login" class="fadeIn second" name="username" placeholder="username">
5 <input type="password" id="password" class="fadeIn third" name="password" placeholder="password">
6 <input type="submit" class="fadeIn fourth" value="Log In">
7 </form>
8
9
10
11
12flaskapp.py
13
14@app.route('/loggedin', methods=['POST'])
15def login():
16 user = request.form['username']
17 passwd = request.form['password']
18 # admin_user = User(id = 1, username = request.form['username'], password = password)
19 # db.session.add(admin_user)
20 print(user)
21 print(passwd)
22 query_pass = User.query.filter_by(password=passwd).first()
23 if User.query.filter_by(username='admin').first() == user and check_password_hash(query_pass, passwd):
24 return render_template('loggedin.html')
25
26
27
28
29tables.py
30
31from flask import Flask
32from flask_sqlalchemy import SQLAlchemy
33from flask_migrate import Migrate
34from werkzeug.security import generate_password_hash,check_password_hash
35from flask_login import UserMixin
36from flask_login import LoginManager
37import os
38
39app = Flask(__name__)
40db = SQLAlchemy(app)
41
42login_manager = LoginManager()
43login_manager.init_app(app)
44
45
46app.config['SECRET_KEY'] = 'secretkey'
47app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
48app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.abspath(os.path.join(os.path.dirname( __file__ ), os.pardir, 'data.sqlite'))
49
50
51class User(db.Model, UserMixin):
52
53 __tablename__ = 'users'
54
55 id = db.Column(db.Integer, primary_key=True)
56 username = db.Column(db.String(80), unique=True, nullable=False)
57 password = db.Column(db.String(128), unique=True, nullable=False)
58
59 def __init__(self, id, username, password):
60 self.id = id
61 self.username =username
62 self.password = generate_password_hash(password)
63
64 def check_password(self,password):
65 return check_password_hash(self.password_hash,password)
66
67 def __repr__(self):
68 return f'<User {self.username} {self.password}>'
69
70login_manager.login_view = "login"