Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Jante noi shitbox

Trinitas TV 4K

Dacia 1316 cu 6 usi ...

Frecventa modificata radio
 Un nou pericol pt batrani

Ar trebuii sa vindem imobiliarele...

Dupa renuntarea la aparat dentar

pelerinaj in Balcik
 Noul format Jpegli iși propu...

Dade, dade

Probleme accesare nr test telefon

Parola la lock screen
 Deparazitare externa pisici fara ...

Seriale turcesti/coreene online H...

Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle
 

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,484
  • Î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,238
  • Î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

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

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