Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Iesirea din coproprietate

Mouse wireless ergonomic cu bater...

Cum se calculeaza dobanda lunara ...

La mulți ani @driftking91!
 Unde e recomandat sa ma cazez in ...

Descarcator de supratensiune tip 2

ping digi?

Reparare "șanțuri&#...
 De ce i se zice Mariei "Stapa...

Colet valoare Londra București

BMW seria 3 rulat vs SsangYong Ko...

Share abonament Netflix
 Cum pot sa fac rost de un negativ...

Lant Bicicleta

Un designer artist: Raymond Loewy

ATS din contactor modular
 

delete button flask with sqlite3

- - - - -
  • Please log in to reply
11 replies to this topic

#1
sorin86

sorin86

    Member

  • Grup: Members
  • Posts: 797
  • Înscris: 16.12.2012
Salut,

Ma confrunt de 3 zile cu un buton de delete in flask si nu pot sa ii dau de cap, ori sunt batut in cap.. sigur a doua varianta.

Imi da eroarea asta :

Quote


NameError: global name 'entry_id' is not defined
Traceback (most recent call last)

@app.route('/delete')
def delete_entry():
con = sql.connect("database.db")
con.row_factory = sql.Row
cur = con.cursor()
cur.execute("delete from students where id=?", (entry_id,) )

rows = cur.fetchall();
return render_template("list.html",rows = rows)


<!doctype html>
<html>
<body>
	 <table border = 1>
		 <thead>
		 <td><b>ID</b></td>
		 <td><b>Name</b></td>
		 <td><b>Address</b></td>
		 <td><b>City</b></td>
		 <td><b>Pincode</b></td>
		 <td><b>Delete</b></td>
		 </thead>
		 {% for row in rows %}
		 <tr>
			 <td>{{row["id"]}}</td>
			 <td>{{row["name"]}}</td>
			 <td>{{row["addr"]}}</td>
			 <td> {{row["city"]}}</td>
			 <td>{{row["pin"]}}</td>
<td>		 <a href="{{ url_for('delete_entry', entry_id=row['id'] )}}">Delete</a>
</td>
{% endfor %}
	 </table>
	 <a href = "/">Go back to home page</a>
</body>
</html>



Cum ar trebui sa definesc acel "entry_id" ?

Multumesc

#2
Baggins

Baggins

    Member

  • Grup: Members
  • Posts: 264
  • Înscris: 09.10.2014
Cu un int/string.

#3
sorin86

sorin86

    Member

  • Grup: Members
  • Posts: 797
  • Înscris: 16.12.2012
Am incercat toate posibilitatile ..str..int.. nimic nu merge.

#4
Baggins

Baggins

    Member

  • Grup: Members
  • Posts: 264
  • Înscris: 09.10.2014
Păi cine e entry_id ăla?
De unde vine?
De asemenea, codul python se indentează.

#5
sorin86

sorin86

    Member

  • Grup: Members
  • Posts: 797
  • Înscris: 16.12.2012
Salut,

entry_id este folosit aici :
<a href="{{ url_for('delete_entry', entry_id=row['id'] )}}">Delete</a>


#6
Sky_Way

Sky_Way

    Member

  • Grup: Members
  • Posts: 350
  • Înscris: 25.04.2008
In Python, la funcție nu văd nicăieri definirea lui entry_id. Funcția ta nu acceptă argumente, deci ce să înțeleagă prin entry_id?

#7
sorin86

sorin86

    Member

  • Grup: Members
  • Posts: 797
  • Înscris: 16.12.2012
1. Se pare ca acel entry_id se trimite ok de la list.html to views.py, dar nu sterge din baza de date.. nu ia in considerare acel query.

Attached File  table.PNG   6.91K   8 downloads



views.py

@app.route('/delete/<int:[b]entry_id[/b]>')
def delete_entry(entry_id):

return ('Postid %d was deleted.' %(entry_id))



list.html

<a href="{{ url_for('delete_entry', entry_id=row['id'] )}}">Delete</a>



Output result:

Attached File  post1.PNG   4.48K   6 downloads


Attached File  post2.PNG   4.58K   3 downloads

#8
sorin86

sorin86

    Member

  • Grup: Members
  • Posts: 797
  • Înscris: 16.12.2012
Am reusit ..sper sa ajute pe cineva:

@app.route('/delete/<int:entry_id>')
def delete_entry(entry_id):
con = sql.connect("database.db")
con.row_factory = sql.Row
cur = con.cursor()
entry_id=int(entry_id)
cur.execute("delete from students where id=?", (entry_id,))
con.commit()
rows = cur.fetchone();
return redirect("http://0.0.0.0:4000/list")

Edited by sorin86, 12 February 2018 - 15:59.


#9
georgica

georgica

    Active Member

  • Grup: Members
  • Posts: 1,487
  • Înscris: 30.01.2003
Să vezi fericire maximă când te indexează google și n-o sa mai fie nici un student în db.

Regulă: cu GET se fac doar cereri care nu au efect asupra sistemului, sînt doar de citire informații. Orice modificare a sistemul se face prin POST (sau PUT, PATCH, DELETE).

#10
sorin86

sorin86

    Member

  • Grup: Members
  • Posts: 797
  • Înscris: 16.12.2012
"Să vezi fericire maximă când te indexează google și n-o sa mai fie nici un student în db." nu am inteles partea asta :)))

#11
Sky_Way

Sky_Way

    Member

  • Grup: Members
  • Posts: 350
  • Înscris: 25.04.2008
Probabil se referă că ar fi bine să nu aibă oricine acces la webserverul tău. Poate un .htaccess nu ar strica, ca să previi treburile astea

#12
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,254
  • Înscris: 24.02.2007
GET e pentru citit informatii, nu pentru efectuari de schimbari asupra lor.

Motoarele de indexare, cand iti viziteaza site-ul, se plimba prin toate linkurile ce le gasesc. In cazul asta, vor "apasa" delete pe tot ce prind, lucru ce n-ar fi de dorit.

Edited by dani.user, 03 March 2018 - 12:14.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate