Flask-SQLAlchemy query many-to-many tagging with multiple requred tags -


मैंने मॉडल को परिभाषित किया है:

  टैग = db.Table ('tags', db । कॉलम ('टैग_id', डीबी.इन्टेजर, डीबी। फ़्रीगेनकी ('टैग.आईडी')), डीबी। कॉलम ('फोटो_आईडी', डीबी। इंटेगर, डीबी। फ़ोरेंसकी ('फोटो.आईडी')),) वर्ग टैग (Db.Model): id = db.Column (db.Integer, primary_key = true) name = db.Column (db.String (32), अद्वितीय = True) क्लास फोटो (db.Model): id = db.Column (Db.Integer, primary_key = true) sha1sum = db.Column (db.LargeBinary (20), अनन्य = सत्य) ... टैग = db.relationship ('टैग', माध्यमिक = टैग, backref = db.backref (' फोटो ', आलसी =' गतिशील '))   

फ़्लास्क नियंत्रक / दृश्य में मुझे इनपुट टैग की सरणी मिलती है उदाहरण के लिए [' summer ',' selfie ', ...]

प्रश्न:

  1. तस्वीरों के लिए कुशल क्वेरी जिसमें सभी अनुरोधित टैग होते हैं?
  2. खोज के लिए इसे कैसे बढ़ाया जा सकता है अधूरे टैग जैसे कि ['summ', 'elfi', ...] ?

    सबसे अधिक कुशल (i खोज करने के लिए आपके पास बहुत से टैग हैं), लेकिन क्वेरी लिखने के लिए बहुत ही पठनीय तरीका:

      input_tags = ['selfie', 'summer'] q = db Input_tags में टैग के लिए session.query (फोटो): q = q.filter (Photo.tags.any (टैग.नाम == टैग))   

    अपूर्ण उपयोग के लिए startwith ( ..) के बजाय == :

      input_tags = ['sum', 'fu'] q = db.session.query (फोटो) इनपुट_टैग में टैग के लिए: q = q.filter (Photo.tags.any (टैग.नाम.स्टारट्ससह (टैग)))    

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -