Re: requests vs. urllib
Verfasst: Mittwoch 22. April 2015, 19:23
Wie wäre es denn richtig, um eine strikte Trennung beizubehalten?
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Code: Alles auswählen
VERSION = "0.0.1"
import os
import sys
import urllib2
from PyQt4.QtGui import QDialog
from PyQt4.uic import loadUi
class Update_Window(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.getPath_update = os.path.abspath(os.path.join('files', "qt_ui", 'pp_update.ui'))
self.ui_pp_update = loadUi(self.getPath_update, self)
def create_actions_buttons(self):
self.ui_pp_update.pushButtonCheck_Update.clicked.connect(self.check_update)
self.ui_pp_update.pushButtonUpdate.clicked.connect(self.get_update)
def get_update(self):
pass
# The zip file should be downloaded
def check_update(self):
try:
data = urllib2.urlopen('http://sophus.bplaced.net/changelog/version.txt').read()
if str(data) > str(VERSION):
self.ui_pp_update.labelUpdate.setText('Software Update', 'Update Available!')
self.ui_pp_update.pushButtonUpdate.setEnabled(True)
else:
self.ui_pp_update.labelUpdate.setText('Software Update', 'No Updates are Available.')
self.ui_pp_update.pushButtonUpdate.setEnabled(False)
except Exception as ex:
self.ui_pp_update.labelUpdate.setText('Software Update: Unable to Check for Update', ex)
self.ui_pp_update.pushButtonUpdate.setEnabled(False)
if __name__ == '__main__':
app = Update_Window()
app.show()
sys.exit(app.exec_())
Ja! Denn das ermöglicht schon mal das Unit Testen und ggf. auch das Benutzen in anderen Projekten. Dazu importiert man dann eben nur die Funktionen (bzw. allg. Objekte), die man auch benötigt.Sophus hat geschrieben:Nun, ist die Trennung von Logik und GUI erst gegeben, wenn die Funktionen außerhalb der Klasse geschrieben wird?
Nein, dann natürlich nicht, weil Du dann "GUI"-Code und "nicht GUI"-Code nicht *separat* verwenden kannst. (Von ``staticmethod`` mal abgesehen, aber das wäre imho dennoch schlechtes Design!)Sophus hat geschrieben: Ich dachte (Juhu, ich kann denken), die Trennung wäre auch gegeben, wenn ich die Funktion innerhalb der selben Klasse schreibe, in die auch die GUI geladen wird, und ich nur darauf achten muss, dass hierbei die Funktion und GUI sich nicht intensiv in Berührung kommen?
Es handelt sich nicht um Anführungszeichen, sondern um Asteriske also *. Dies ist in vielen Markupsprachen (Creole iirc, div. Wikis, Emails (!)) ein Markup zur Hervorhebung von Wörtern. Oftmals ist die mir das altbackene Markup dieses Boards zu kompliziert zu tippen und ich greife dann auf diese Alternative zurückSophus hat geschrieben: Und wieso stellst du das Wort Rückgabewert in Anführungszeichen? Willst du damit sagen, dass es sich nicht wirklich um einen Rückgabewert handelt?