multiple Datenbanken mit Django

Django hat durch sein MVC(Model-View-Controller) von Beginn an eine Datenbank mit am Board. Mein Projekt basiert auf mysql, jedoch hatte ich weitere Datenbanken, die ich über Django managen wollte, die allerdings nicht in der Default DB von Django sind. Daher müssen diese Django bekannt gemacht und Models für diese Datenbanken erstellt werden. Die Bekanntmachung findet in der settings.py statt. Hier trägt man die weiteren DB Verbindungen ein. Dabei könnte es wie folgt aussehen. In dem DATABASE Dictionary können neben dem Default weitere Werte eingetragen werden. Die ENGINE bestimmt dabei, ob mysql, sqlite oder die anderen unterstützen DBs eingetragen werden. Im […]

Python Datenbank Klasse Update

In meiner Datenbank Klasse habe ich lange Zeit die Update Funktion missen lassen. Hier gelangt ihr zum alten Artikel. Einfach aus dem Grund weil ich sie vorher noch nicht benötigt habe. Das habe ich hiermit nun nachgezogen(Eigentlich existiert sie schon wesentlich länger, aber ich habe jetzt erst den Artikel verfasst 😉 ). Das Update kann separat aufgerufen werden, macht aber auch Sinn in Zusammenhang mit einem Insert. Falls dort z.B. ein Primärschlüssel schon existiert, kann dieser geupdated werden. Für ein internes Projekt habe ich folgende Befehlszeilen dafür benutzt if not DB.QueryInsert(“insert into AUX_PROJECTS(%s) VALUES(%s)”,{“ID”:PList[i][0],PList[0][1]:PList[i][1],”ZINS”:str(PList[i][2]).replace(“,”,”.”),PList[0][3]:PList[i][3],”ANLAGE”:PList[i][4],”STATUS”:PList[i][5],”SCORE”:PList[i][6],PList[0][7]:PList[i][7],PList[0][8]:PList[i][8],”UNIT”:PList[i][9],”UPLOADED_AT”:PList[i][10]}, True): DB.QueryUpdate(“update AUX_PROJECTS SET %s where […]

IPs mittels iptables automatisch blockieren lassen

Eigentlich wollte ich meinen vServer noch sicherer machen, indem ich von Seiten wie myip.ms eine vorgefertigte Blackliste herunterlade. Die gezogenen IPs sollten mittels iptables blockiert werden. Ich hatte auch schon soweit alles fertig geschrieben, ein Python3 Script, ein Shell Script und die SQL Scripte zum Anlegen der Datenbank. Allerdings habe ich nach ein “paar” Einträgen folgende Nachricht von iptables bekommen: iptables: Memory allocation problem. Nach ein bisschen Internet Recherche fand ich heraus, dass mich mein Hoster auf eine bestimmte Anzahl an iptable Einträgen begrenzt. Die maximal Möglichen Einträge findet ihr mit diesem Befehl. egrep “failcnt|numiptent” /proc/user_beancounters numiptent steht dabei für […]

Python Datenbank Klasse

Für Python Datenbank Projekte habe ich eine Klasse geschrieben, die sich um die Verbindung und (bisher) Select und Insert Abfragen kümmert. Beim Definieren wird die Konstruktormethode aufgerufen und die Verbindungsparameter übergeben. Die Objektvariablen bekommen die jeweilige Eingaben zugewiesen. def __init__(self,host,username,password,database): self.host = host self.username = username self.password = password self.database = database Connect Methode Die connect Methode benutzt die Objektvariablen und baut mit diesen Informationen die Verbindung zu der Datenbank auf. self.cnx speichert die erzeugte Session. Somit steht diese Session dem Code weiter zur Verfügung und kann vom nachfolgenden Code mit der cnx Variable aufgerufen werden.  Im Falle von Fehlern […]

PHP Datenbank Klasse verwenden

Im vorherigen Artikel habe ich gezeigt, wie ich den Zugriff auf einer Datenbank durch meine Klasse bereitstelle. Ich werde darauf jetzt nicht mehr direkt eingehen und euch zeigen, wie die Datenbank Klasse verwendet wird. Zuerst muss ein neue Objekt der Datenbank angelegt und die erwarteten Werte mitgegeben werden. Damit wären die Weichen für eine Datenbankverbindung schon einmal gestellt. $db = new DB(“Server”,”DB”,”User”,”Password”); Vorweg definiere ich die Query für die spätere Abfrage Funktion. $query = “select * from Table”; Datenbankabfragen haben meist mehr als nur eine Zeile. Die Werte stammen aus dem Array der Funktion execute_query(). Im Foreach ist dadurch mein […]

PHP Datenbank Klasse

Damit ich mir die Arbeit für den Datenbankzugriff und die jeweilige Auswertung der Daten vereinfachen kann, habe ich die Datenbank Klasse geschrieben. In der Klasse habe ich 6 private Variablen erzeugt, die die Daten der Datenbank Session speichern. private $_connection; private $_connectionInfo = array(); private $_host; private $_username; private $_db; private $_password; Der Konstruktor erwartet die Übergabe des Server, Zugangsdaten und die Datenbank und speichert diese in die privaten Variablen ab. public function __construct($host,$db,$username,$password) { $this->_host = $host; $this->_db = $db; $this->_username = $username; $this->_password = $password; $this->_connectionInfo =array(“Database” => $this->_db, “UID”=>$this->_username,”PWD”=>$this->_password); $this->_connection = sqlsrv_connect( $this->_host, $this->_connectionInfo); } Somit sind […]