20 lines
659 B
Markdown
20 lines
659 B
Markdown
|
|
Analysiere den folgenden Python-Code, benenne seine Schwächen und schreibe ihn robust und wartbar um. Gib danach eine kurze Begründung der wichtigsten Änderungen und ein paar pytest-Beispieltests.
|
||
|
|
|
||
|
|
```python
|
||
|
|
import sqlite3
|
||
|
|
|
||
|
|
conn = sqlite3.connect('users.db')
|
||
|
|
|
||
|
|
def get_user(name):
|
||
|
|
cur = conn.execute("SELECT * FROM users WHERE name = '" + name + "'")
|
||
|
|
return cur.fetchone()
|
||
|
|
|
||
|
|
def add_user(name, age):
|
||
|
|
try:
|
||
|
|
conn.execute("INSERT INTO users VALUES ('" + name + "', " + str(age) + ")")
|
||
|
|
conn.commit()
|
||
|
|
except:
|
||
|
|
pass
|
||
|
|
```
|
||
|
|
|
||
|
|
Achte besonders auf: SQL-Injection, Fehlerbehandlung, Ressourcen-/Verbindungsmanagement und Testbarkeit.
|