Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Caut un VPN gratuit si un Antivir...

ajutor VPN

Sfaturi montaj folie antivapori l...

Borseta barbateasca
 Ce este cu declaratiile cerute ce...

Focul bacterian,basicarea,mucegai...

infectie zona inghinala

Dua Lipa - Training Season
 Informatii complete despre servic...

tema circuite

Voua va merge sa va logati pe git...

Fara curent casetofon Dacia Dokker
 Schimbare difuzor Golf 7

Recomandare aparat de ras electric

Lant clinici dentare vs cabinete ...

Site-uri bune pentru cumparat Sma...
 

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: 349
  • Î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,483
  • Î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: 349
  • Î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,225
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

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