Forums

"SQLAlchemy" and website

Good day, I created a project. But it works differently on the host than on the local one. Cannot create .key and .bd format file.

Here is a piece of code, the project is created something like a private chat for several participants:

<code>from flask import Flask, render_template, request, session, redirect, url_for, flash from werkzeug.security import generate_password_hash, check_password_hash from wtforms import StringField, PasswordField, SubmitField from wtforms.validators import DataRequired, Length from cryptography.fernet import Fernet from flask_wtf import FlaskForm from flask_sqlalchemy import SQLAlchemy from datetime import datetime import random import os

app = Flask(name) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.config['SECRET_KEY'] = "Kodelol" db = SQLAlchemy(app)

key_file_path = 'encryption_key.key' if os.path.exists(key_file_path): with open(key_file_path, 'rb') as key_file: key = key_file.read() else: key = Fernet.generate_key() with open(key_file_path, 'wb') as key_file: key_file.write(key)

cipher_suite = Fernet(key)

class User(db.Model): id = db.Column(db.Integer, primary_key=True) nickname = db.Column(db.String(20), nullable=False, unique=True) password_hash = db.Column(db.String(128), nullable=False)

def set_password(self, password):
    self.password_hash = generate_password_hash(password)

def check_password(self, password):
    return check_password_hash(self.password_hash, password)

class Message(db.Model): id = db.Column(db.Integer, primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) user = db.relationship('User', backref='messages') message = db.Column(db.String(500), nullable=False) timestamp = db.Column(db.DateTime, default=datetime.utcnow)

if name == 'main': with app.app_context(): db.create_all() app.run(debug=True, use_reloader=True)</code>

Look in the error log for your web app where you should find tracebacks that you can use to start debugging.