Seite 1 von 1

Parr Fragen

Verfasst: Sonntag 11. Juni 2006, 14:36
von Creative
Moin,
also ich bin noch neu in Python (kann aber schon php) so nun bin ich dran für ein cms ein kleines adminpanal zu schrieben genauer gesagt es soll für den desktop werden sprich ein desktop adminpanal

nun möchte ich mich aber zuerst noch nicht mit GUI´s auseinderesetzen (das kommt wenn ich den code als console am laufen habe)
ich hab aber noch ein parr probleme
also ich fang mal an
1:
wenn ich das "programm" öffne (doppelklick auf de python file) geht die console auf und da kommt auch die abfrage die ich haben möchte nur sobald ich etwas eingeb beendet er die console sofort wieder da fehlt bestimmt was im code nur konnte ich noch nicht herrausfinden was

Code: Alles auswählen

import  MySQLdb 

name = input("Clanname: ") 

conn = MySQLdb.connect(
                        host    ="localhost", 
                        db      ="dzcp_13", 
                        user    ="root", 
                        passwd  ="") 

c = conn.cursor(MySQLdb.cursors.DictCursor) 

query = "UPDATE dzcp_settings SET clanname = '%name'"
c.execute(query)

print +name
ausserdem befürchte ich das ich beim escapen etwas falsch mache kann mir vllt bitte einer erklären wie ich das richtig mache? und ich hab noch eine frage zu

Code: Alles auswählen

input()
ich hab schon öfters gelesen das man es nicht benutzten sollte,wieso den nicht?, ich hab noch

Code: Alles auswählen

raw_input()
gefunden nun spackt der aber rum wenn ich das verwende kann mir vllt auch jemand bei dem problem helfen

MFG Creative

Verfasst: Sonntag 11. Juni 2006, 14:45
von DatenMetzgerX

Code: Alles auswählen

name = str(raw_input("Clanname: ") )
Und ganz am schluss ein

Code: Alles auswählen

os.system("pause")
Musst allerdings das os modul importieren ;)

Verfasst: Sonntag 11. Juni 2006, 16:16
von Creative
mein code sieht jetzt so aus

Code: Alles auswählen

import  MySQLdb 
import os
name = str(raw_input("Clanname: ") ) 

conn = MySQLdb.connect(
                        host    ="localhost", 
                        db      ="dzcp_13", 
                        user    ="root", 
                        passwd  ="") 

c = conn.cursor(MySQLdb.cursors.DictCursor) 

query = "UPDATE dzcp_settings SET clanname = '%name'"
c.execute(query)

print +name

os.system("pause")
die mysql abfrage bzw. das update geht nur er schreibt %name rein und nicht die variable ich komme gerade nicht drauf wie er die variable da rein schreibt bzw. ich find nirgends ne anleitung :( kann mir das vllt einer sagen wie das geht? und er bricht immer noch ab dirket nach dem ich bei Clanname den namen eingegeben habe also das print führt er nciht aus bzw. man kann es nicht sehen

Verfasst: Sonntag 11. Juni 2006, 17:03
von cime
DatenMetzgerX hat geschrieben:

Code: Alles auswählen

name = str(raw_input("Clanname: ") )
nein, es muss so aussehen:

Code: Alles auswählen

name = raw_input("Clanname: ") 
raw_input gibt einen string zurück. Damit ist es sinnlos noch einmal str() zu verwenden, weil die dann einfach nur ein und dasselbe zurückgibt


ich versteh zwar nicht von mysql, aber ich denke mal du möchtest statt:
Creative hat geschrieben:

Code: Alles auswählen

query = "UPDATE dzcp_settings SET clanname = '%name'"
dieses hier:

Code: Alles auswählen

query = "UPDATE dzcp_settings SET clanname = '%s'"%name
oder:

Code: Alles auswählen

query = "UPDATE dzcp_settings SET clanname = %s"%repr(name)
Creative hat geschrieben:

Code: Alles auswählen

print +name
du muss das + wegnehmen, denn dadurch wird eine exception ausgelöst und das programm unterbrochen (,weshalb sich das fenster sofort schließt und du keine ausgabe siehst).
also:

Code: Alles auswählen

print name

Verfasst: Sonntag 11. Juni 2006, 17:07
von Creative
ja genau das wollte cih :) thx jetzt kann ich gleich weiter machen :) big thx

Verfasst: Sonntag 11. Juni 2006, 19:16
von Andy
Hallo Creative,

input()
ich hab schon öfters gelesen das man es nicht benutzten sollte,wieso den nicht?, ich hab noch Code: (Python)

raw_input()
gefunden nun spackt der aber rum wenn ich das verwende kann mir vllt auch jemand bei dem problem helfen
Also wie cime schon schrieb, gibt raw_input einen String zurück.
Bei input() könnte Dein Prog.user quasi alles mögliche reinschreiben.
z. B. sowas hier: "os.remove('wichtige_datei.txt')". Und input() würde es auch noch ausführen :!:

Verfasst: Sonntag 11. Juni 2006, 21:13
von Creative
heisst der user könnte dan mit meinem programm allen möglcihen driss anstellen wenn ich input nutzen würd?

noch ne kleine frage
also ich will das ergebniss des auslesen aus meiner mysql db nur zeigt er mir das ergebniss nicht an

Code: Alles auswählen

c = conn.cursor(MySQLdb.cursors.DictCursor) 
    query2 = "SELECT clanname FROM dzcp_settings"
    result = c.execute(query2)
    print "Der Aktuelle Clanname: %s" %result
    config = raw_input("Neuen Clanname eingeben: ") 
das ist jetzt nur nen teil meinens codes aber um die ecke gehts ja...kann mir da vllt nochmal einer helfen

Ergebnis anzeigen

Verfasst: Mittwoch 14. Juni 2006, 18:30
von Andy
heisst der user könnte dan mit meinem programm allen möglcihen driss anstellen wenn ich input nutzen würd?
Da sach ich ma, joch!


hab v. Datenbankanbindg. noch keine Ahnung.

Kommt eine Fehlermeldung? Wenn nicht, solltest Du vieleicht
ein wenig mehr Code für die Leutz hier im Forum rausrücken.
(kannst den ja ein wenig abändern :wink: ) Oft, steckt nämlich
doch ganz ein anderer Teil dahinter...

Verstehe ich Dich richtig?
Du willst den Clanname aus deiner Db. und diesen über Print ausgeben.
Oder geht dass und Du willst irgendwas mit der config-Zeile anfangen?

Schätze da kann ich Dir nicht allzu viel helfen.

Verfasst: Mittwoch 14. Juni 2006, 22:08
von BlackJack
Creative hat geschrieben:

Code: Alles auswählen

c = conn.cursor(MySQLdb.cursors.DictCursor) 
    query2 = "SELECT clanname FROM dzcp_settings"
    result = c.execute(query2)
    print "Der Aktuelle Clanname: %s" %result
    config = raw_input("Neuen Clanname eingeben: ") 
das ist jetzt nur nen teil meinens codes aber um die ecke gehts ja...kann mir da vllt nochmal einer helfen
`execute()` liefert nicht das Ergebnis der SQL-Anweisung zurück. Das musst Du mit einer der `fetch*()` Methoden auslesen.