wmaraci reklam

Python Flask-SQLAlchemy Kategorideki Ürünleri Sayma

6 Mesajlar 815 Okunma
pst.net
wmaraci reklam

gorkemg1234 gorkemg1234 WM Aracı Kullanıcı
  • Üyelik 11.07.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Ögrenci
  • Konum Bursa
  • Ad Soyad G** G**
  • Mesajlar 191
  • Beğeniler 0 / 12
  • Ticaret 3, (%100)
Merhabalar, Flask-SQLAlchemy ile ufak çapta proje geliştiriyorum. Bir yerde takıldım. Relationshipli bir db oluşturdum. Yapmak istediğim o kategoride bulunan ürünlerin sayısını ve o kategorideki ürünlerin toplam fiyatını yazdırmak istiyorum bunu nasıl yapabilirim.


models.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager, UserMixin
from flask_msearch import Search
from datetime import datetime

app = Flask(__name__)
app.config["SECRET_KEY"] = "secret"
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
search = Search()
search.init_app(app)
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'


class Products(db.Model):
__searchable__ = ["product_name"]
id = db.Column(db.Integer, primary_key=True)
product_name = db.Column(db.String(20))
product_amount = db.Column(db.Integer)
product_price = db.Column(db.Float)
product_date = db.Column(db.DateTime, default=datetime.utcnow)
category_id = db.Column(db.Integer, db.ForeignKey('category.id'))
category = db.relationship('Category', backref="category")

def __repr__(self):
return f"Products('{self.product_name}' '{self.product_amount}' '{self.product_price}' '{self.category}')"


class Category(db.Model):
id = db.Column(db.Integer, primary_key=True)
category_name = db.Column(db.String(80))

def __repr__(self):
return f"{self.category_name}"




app.py

@app.route("/categories", methods=["GET", "POST"])
@login_required
def categories():
categories = Category.query.all()
if request.method == "POST":
category_name = request.form["category_name"]
category = Category(category_name=category_name)
db.session.add(category)
db.session.commit()
return redirect(url_for("categories"))
return render_template("categories.html", categories=categories)



Tablo












{% for category in categories %}






{% endfor %}


Category Name Total Product Update Category Delete Category
{{ category.category_name }} Product Counter in Specific Category Update Delete



Yukarıda "Product Counter in Specific Category" yazan yere örneğin ben bir ürün eklediğimde:
Ürün adı : telefon-1
Ürün adedi: 5
Ürün fiyatı : 150TL
Kategori: Telefon
Ürün adı : telefon-2
Ürün adedi: 3
Ürün fiyatı : 100TL
Kategori: Telefon

gibi oldugunda tabloda telefon kategorisi satırında mesela fiyat yerinde 250TL ürün adedinde 8 yazacak

Bunu nasıl yapabilirim yardımcı olur musunuz?
 

 

wmaraci
reklam

mchtylmz149 mchtylmz149 WM Aracı Kullanıcı
  • Üyelik 23.05.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum Bolu
  • Ad Soyad M** Y**
  • Mesajlar 247
  • Beğeniler 39 / 53
  • Ticaret 7, (%100)
Merhabalar ben daha yaptığım bir proje de
--Class Ad--.query.filter_by(--Filter--).count()
sorguysula sayı alabiliyordum
projemde ki sorgu ise şöyleydi
Favorite.query.filter_by(user_id=current_user.id).count()
 

 

gorkemg1234 gorkemg1234 WM Aracı Kullanıcı
  • Üyelik 11.07.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Ögrenci
  • Konum Bursa
  • Ad Soyad G** G**
  • Mesajlar 191
  • Beğeniler 0 / 12
  • Ticaret 3, (%100)
Şöyle olucak mesela klavye-mouse-bilgisyar kategorileri olacak klavyede 3 ürün varsa 3 mousede 5 gibi gibi gidicek
 

 

gorkemg1234 gorkemg1234 WM Aracı Kullanıcı
  • Üyelik 11.07.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Ögrenci
  • Konum Bursa
  • Ad Soyad G** G**
  • Mesajlar 191
  • Beğeniler 0 / 12
  • Ticaret 3, (%100)

mchtylmz149 adlı üyeden alıntı

Merhabalar ben daha yaptığım bir proje de

sorguysula sayı alabiliyordum
projemde ki sorgu ise şöyleydi


Filter_by denemiştim ama olmadı galiba ya. Ya da ben yanlış yaptım
 

 

wmaraci
Mersin evden eve nakliyat

mchtylmz149 mchtylmz149 WM Aracı Kullanıcı
  • Üyelik 23.05.2015
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum Bolu
  • Ad Soyad M** Y**
  • Mesajlar 247
  • Beğeniler 39 / 53
  • Ticaret 7, (%100)
filter by olacak diye bişey yok
sadece filter de oalblir
ya da filter olmadan da oluyor
sadece filter yazılırsa içini yani koşulu doğru yazmak lazım
 

 

gorkemg1234 gorkemg1234 WM Aracı Kullanıcı
  • Üyelik 11.07.2015
  • Yaş/Cinsiyet 33 / E
  • Meslek Ögrenci
  • Konum Bursa
  • Ad Soyad G** G**
  • Mesajlar 191
  • Beğeniler 0 / 12
  • Ticaret 3, (%100)
ikisini de denemiştim ama yapamadım maalesef. Sanırım mantık hatası yapıyorum. biraz daha deniyim bakalım.
 

 

wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al