Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Κοίτα λίγο αυτό

def cq(**argv):
	start = "SELECT * FROM jobs WHERE "
	end = " ORDER BY lastvisit DESC"
	
	name_arg = ''
	other_args=''
	connector = ' and '
			
	if argv.get('name'):
		name_arg = " clientID = (SELECT id FROM clients WHERE name = {}) ".format(argv['name'] )
		argv.pop('name')
	
	other_args = connector.join ("{} = {}".format(i, argv[i]) for i in argv if argv[i])
	
	if name_arg and other_args:
		name_arg+=connector
			
	return start + name_arg + other_args + end

Δες τι δίνει
>>> cq(name = 'PAOK', minas =13, city='Saloniki', etos = '2030' )
'SELECT * FROM jobs WHERE  clientID = (SELECT id FROM clients WHERE name = PAOK)  and minas = 13 and city = Saloniki and etos = 2030 ORDER BY lastvisit DESC'
>>> cq(name = '', minas =13, city='Saloniki', etos = '' )
'SELECT * FROM jobs WHERE minas = 13 and city = Saloniki ORDER BY lastvisit DESC'

και το καλείς έτσι

cur.execute (cq(name = request.args.get('name'), month = request.args.get('month'), year=request.args.get('year')))

ίσως μπορείς να το καλέσεις και έτσι αλλά δεν ξέρω τι σου επιστρέφουν οι συναρτήσεις σου.

cur.exequte(cq(**request.args()))

Δεν είναι αυτό που θες ακριβώς αλλά  είναι οκ.

Επεξ/σία από k33theod
Δημοσ.
Στις 14/2/2019 στις 12:30 ΜΜ, k33theod είπε

Κοίτα λίγο αυτό

def cq(**argv):
	start = "SELECT * FROM jobs WHERE "
	end = " ORDER BY lastvisit DESC"
	
	name_arg = ''
	other_args=''
	connector = ' and '
			
	if argv.get('name'):
		name_arg = " clientID = (SELECT id FROM clients WHERE name = {}) ".format(argv['name'] )
		argv.pop('name')
	
	other_args = connector.join ("{} = {}".format(i, argv[i]) for i in argv if argv[i])
	
	if name_arg and other_args:
		name_arg+=connector
			
	return start + name_arg + other_args + end

Δες τι δίνει
>>> cq(name = 'PAOK', minas =13, city='Saloniki', etos = '2030' )
'SELECT * FROM jobs WHERE  clientID = (SELECT id FROM clients WHERE name = PAOK)  and minas = 13 and city = Saloniki and etos = 2030 ORDER BY lastvisit DESC'
>>> cq(name = '', minas =13, city='Saloniki', etos = '' )
'SELECT * FROM jobs WHERE minas = 13 and city = Saloniki ORDER BY lastvisit DESC'

και το καλείς έτσι

cur.execute (cq(name = request.args.get('name'), month = request.args.get('month'), year=request.args.get('year')))

ίσως μπορείς να το καλέσεις και έτσι αλλά δεν ξέρω τι σου επιστρέφουν οι συναρτήσεις σου.

cur.exequte(cq(**request.args()))

Δεν είναι αυτό που θες ακριβώς αλλά  είναι οκ.

Κάτι τέτοιο του έλεγα να φτιάξει εξαρχής, αλλά δεν τον βλέπω να θέλει να το γράψει εκείνος. Νομίζω ότι ζητάει να του γράψουνε την λύση. 

Δημοσ.

Μα την εγραψα την κυση μονος μου, ο κωδικας ποου εγραψε ο φιλος μου φαινεται πιο συνθετος στηνν κατανοηση οποτε εμενινα στην δκη μου λυση.

Δημοσ.

 

16 ώρες πριν, thessalonik είπε

Μα την εγραψα την κυση μονος μου, ο κωδικας ποου εγραψε ο φιλος μου φαινεται πιο συνθετος στηνν κατανοηση οποτε εμενινα στην δκη μου λυση.

Σ'αυτό μαζί σου. Αυτό που καταλαβαίνουμε είναι πάντα καλύτερο από αυτό που δεν καταλαβαίνουμε.

Αν δείς όμως λίγο python string θα το καταλάβεις. Κάνει αυτό που είπε ο Fortistis. 

 

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...