Estoy tratando de hacer una aplicación de frasco donde te registras y puedes hacer nuevas publicaciones. Pero quiero que si el usuario ha realizado más de 3 publicaciones en menos de 10 minutos, debe esperar 5 minutos. Aquí está el código:
allpos = [] @app.route('/makepost',methods=['POST','GET']) def makepost(): print(allpos) sear = 1 oldtime = time.time() if len(allpos) == 3: currenttime = time.time() if currenttime - oldtime > 300: allpos.clear() return render_template('posts.html') else: return render_template('wait.html') if not current_user.is_authenticated: return redirect('/login') if request.method == 'POST': global title global content title = request.form['title'] content = request.form['content'] if len(title) < 5: flash("Title must be at least 5") if len(title) > 50: flash("Title must be 50 characters max") if len(content) < 5: flash('Content must be at least 5 letters') if len(title) > 5 and len(title) < 50 and len(content) > 5: sear = 2 if sear == 2: global post1 post1 = Post(title=title,content=content,name=current_user.name,author=current_user.id) db.session.add(post1) db.session.commit() allpos.append('1') if sear != 2: flash('We couldnt make your post') return render_template('posts.html')
Quiero evitar que el usuario haga publicaciones en este sentido:
oldtime = time.time() if len(allpos) == 1: currenttime = time.time() if currenttime - oldtime > 0: print('asdasd') allpos.clear() return render_template('posts.html') else: return render_template('wait.html')
Pero el tiempo pasa y sigue impidiendo al usuario. Además, cuando el usuario va a otra página, el tiempo se reinicia. Mi principal problema es que impide que el usuario haga publicaciones. También uso SQLAlchemy.
Aquí está el usuario y el modelo de publicación:
class Users(UserMixin,db.Model): id = db.Column(db.Integer,primary_key=True) name = db.Column(db.String(200),unique=True,nullable=False) password = db.Column(db.String(200),unique=False,nullable=False) role = db.Column(db.String(200),unique=False,nullable=False) missions = db.Column(db.String(200),unique=False,nullable=False) posts = db.relationship('Post',backref='user') class Post(db.Model): id = db.Column(db.Integer,primary_key=True) title = db.Column(db.String(200),unique=False,nullable=False) content = db.Column(db.Text,unique=False,nullable=False) name = db.Column(db.String(200),unique=False,nullable=False) author = db.Column(db.Integer,db.ForeignKey('users.id'),unique=False)
Por favor dame una respuesta.
Gracias.