• 16-03-2022, 19:17:58
    #1
    Falsk kütüphanesiyle temel çapta bir site yapmaya çalışıyorum herhalde kodlarda sıkıntı var ama ben bulamadım yardım edebilir misiniz?

    from flask import Flask, flash, render_template, request, redirect, url_for, session
    from flask_sqlalchemy import SQLAlchemy
    import os
    from datetime import datetime
    
    DB_NAME = 'dreamlist.db'
    
    app = Flask(__name__)
    app.config['SECRET_KEY'] = "asdfkkkkkkkallalall"
    app.config['SQLALCHEMY_DATABASE_URI'] = f"sqlite:///{DB_NAME}"
    db = SQLAlchemy(app)
    
    class Users(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(85), nullable=False)
        surname = db.Column(db.String(85), nullable=False)
        email = db.Column(db.String(85), nullable=False)
        password = db.Column(db.String(155), nullable=False)
        job = db.relationship('job', backref='jobber')
    
        
    class Jobs(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        job = db.Column(db.String(85), nullable=False)
        telephone = db.Column(db.Integer, nullable=False)
        adres = db.Column(db.String(350), nullable=False)
        detay = db.Column(db.String(255), nullable=False)
        password = db.Column(db.String(155), nullable=False)
        date_added = db.Column(db.DateTime(155), default=datetime.utcnow)
        jobber_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    
    
    @app.route("/")
    def home():
      #  if 'email' in session:
         #   email = session['email']
          #  me = Users.query.filter_by(email='email').first()
          # return render_template('home.html', me=me)
     #   return redirect(url_for('login'))
     return render_template('home.html')
    
    
    @app.route("/register", methods=["GET", "POST"])
    def register():
         if request.method == "POST":
            name = request.form.get('name')
            surname = request.form.get('surname')
            email = request.form.get('email')
            password = request.form.get('password')
            return redirect(url_for('login'))
         return render_template('register.html')
    
    @app.route("/login", methods=["GET", "POST"])
    def login():
        if 'email' in session:
            return redirect(url_for('home'))
        if request.method == "POST":
            email = request.form.get('email')
            password = request.form.get('password')
            return redirect(url_for('login'))
        
        search = Users.query.filter_by(email='email').first()
        
        if search is None:
            flash("Yanlış Giriş Yaptın")
            return render_template("login.html")
        
       # if password == search.password:
         #   session['email'] = email
         #   return redirect(url_for('home'))
      #  return render_template('login.html') 
    
    @app.route("/create")
    def create():
        return render_template('create.html')
    
    @app.route("/detail")
    def detail():
        return render_template('detail.html')
    
    @app.route("/logout")
    def logout():
        session.pop("email", None)
        return redirect(url_for('home'))
    
    @app.errorhandler(404)
    def error(e):
        return render_template('404.html')
        
    
    if __name__ == "__main__":
        if not os.path.exists(DB_NAME):
            db.create_all(app=app)
            print("DATABASE OLUŞTURULDU!")
        
        app.debug = True
        app.run(debug = True)
  • 16-03-2022, 19:25:33
    #2
    search = Users.query.filter_by(email=email).first()
    bu kısımdaki kod bu şekilde olması gerekiyor kanımca. Aldığınız hatada login sayfasında doğrumudur ?
  • 16-03-2022, 19:26:36
    #3
    Extsoft adlı üyeden alıntı: mesajı görüntüle
    search = Users.query.filter_by(email=email).first()
    bu kısımdaki kod bu şekilde olması gerekiyor kanımca. Aldığınız hatada login sayfasında doğrumudur ?
    aynen hocam loginde
  • 16-03-2022, 19:32:11
    #4
    Extsoft adlı üyeden alıntı: mesajı görüntüle
    search = Users.query.filter_by(email=email).first()
    bu kısımdaki kod bu şekilde olması gerekiyor kanımca. Aldığınız hatada login sayfasında doğrumudur ?
    hocam hala yanlış mı yapıyorum acaba dediğinizi yaptım ama gene aynı hata var
  • 16-03-2022, 20:06:42
    #5

    Hocam benim kodunuzdan anladığım şu. eğer session içinde email parametresi varsa home sayfasına yönlendir. eğer method post ise email ve password al logine yönlendir. Aslında burada programın mantıken Users.query kısmına hiç inmemesi gerekiyor.
  • 16-03-2022, 20:11:47
    #6
    Extsoft adlı üyeden alıntı: mesajı görüntüle

    Hocam benim kodunuzdan anladığım şu. eğer session içinde email parametresi varsa home sayfasına yönlendir. eğer method post ise email ve password al logine yönlendir. Aslında burada programın mantıken Users.query kısmına hiç inmemesi gerekiyor.
    hatayı çözdüm hocam, pm yoluyla anlatırım ne yaptığımı şuan projeye dönmem gerek teşekkür ederim ilginiz için.
  • 16-03-2022, 20:15:44
    #7
    def login():
        if 'email' in session:
            return redirect(url_for('home'))
        if request.method == "POST":
            email = request.form.get('email')
            password = request.form.get('password')
         
            search = Users.query.filter_by(email=email,password=password).first()
             
            if search is None:
                flash("Yanlış Giriş Yaptın")v
                return render_template("login.html")
            elif:
                return redirect(url_for('home'))

    hocam sanırım bu şekilde düzelmesi gerekiyor. sadece flash ve render template den emin değilim.