Cookie

  • Файл app.py
    		
    		from flask import Flask, render_template, redirect, request, session
    		from flask_session import Session
    
    		# конфигурируем приложение
    		app = Flask(__name__)
    
    		# Конфигурируем сессию
    		app.config["SESSION_PREMANENT"]  = False
    		app.config["SESSION_TYPE"] = "filesystem"
    		Session(app)
    
    		@app.route("/")
    		def index():
    		    if not session.get("name"):
    			return redirect("/login")
    		    return render_template("index.html")
    
    
    		@app.route("/login", methods=["GET", "POST"])
    		def login():
    		    if request.method == "POST":
    			session["name"] = request.form.get("name")
    			return redirect("/")
    		    return render_template("login.html")
    
    
    		@app.route("/logout")
    		def logout():
    		    session["name"] = None
    		    return redirect("/")
    		
    		
  • Создадим index.html
    		
    		
    		
  • Создадим login.html
    		
    		
    		
  • Выполним flask run.

Вход с паролем

  • Создадим файл базы данных
    		
    		sqlite3 hogwarts.db
    		
    		
  • Создадим таблицу и вставим в данные.
    		
    create table 'characters' ('id' integer primary key autoincrement, 'username' varchar(255) not null, 'password' varchar(255) not null);
    insert into 'characters' ('username', 'password') values ('potter', '12345');
    insert into 'characters' ('username', 'password') values ('ron', '12345');
    .quit
    
    		
  • Создадим app.py
    		
    from flask import Flask, render_template, redirect, request, session
    from flask_session import Session
    
    # Соединение с базой данных
    from sqlalchemy import create_engine
    from sqlalchemy.orm import scoped_session, sessionmaker
    from sqlalchemy.sql import text
    url="sqlite:///hogwarts.db"
    engine = create_engine(url)
    db = scoped_session(sessionmaker(bind=engine))
    
    # конфигурируем приложение
    app = Flask(__name__)
    
    # Конфигурируем сессию
    app.config["SESSION_PREMANENT"]  = False
    app.config["SESSION_TYPE"] = "filesystem"
    Session(app)
    
    @app.route("/")
    def index():
        if not session.get("username"):
            return redirect("/login")
        return render_template("index.html")
    
    
    @app.route("/login", methods=["GET", "POST"])
    def login():
        if request.method == "POST":
            username = request.form.get("username")
            password = request.form.get("password")
            row = db.execute(text("select * from 'characters' where username= :username and password=:password"), 
                    {"username": username, "password": password}).fetchone()
            if row: 
                session["username"] = row.username
                session["id"] = row.id
                return redirect("/")
        return render_template("login.html")
    
    
    @app.route("/logout")
    def logout():
        session["username"] = None
        session["id"] = None
        return redirect("/")
        		
    		
  • Файл index.html.
    		
    		
    		
  • Создадим login.html
    		
    		
    		
  • Создадим файл requirements.txt.
    		
    		Flask
    		Flask-session
    		Sqlalchemy
    		Gunicorn