Python Type Analysis
- Какие типы переменных a, b мы видим в этом коде, какие типы они могут применять
def func(a, b):
return dict(
map(
reversed,
enumerate(
sorted(
[
x + y
for x, y in zip(a, b)
]
)
)
)
)
Code Review: Flask Application
import hashlib
import os
from flask import Flask, abort, request
from flask_login import LoginManager, UserMixin, login_user
from . import db
app = Flask(__name__)
db.init_app(app)
login_manager = LoginManager()
login_manager.init_app(app)
app.secret_key = "S3cr37"
class User(UserMixin):
def __init__(self, id: int) -> None:
self.id = id
@app.post("/login")
def login():
login = request.form["login"]
password = request.form["password"]
password_hash = hashlib.md5(password.encode()).hexdigest()
cur = db.get_db().execute(
f"""
SELECT id
FROM users
WHERE login='{login}' AND password='{password_hash}'
"""
)
row = cur.fetchone()
if not row:
abort(403)
user = User(row[0])
login_user(user)
return "Logged in", 200
@app.post("/ping")
@login_required
def ping():
ip = request.form["ip"]
with os.popen(f"ping -c1 '{ip}'") as f:
out = f.read()
return out, 200
@app.post("/allow")
@login_required
def allow():
ip = request.form["ip"]
try:
os.system(f"ufw allow from '{ip}'")
except OSError:
return "Already allowed", 422
else:
return "Allowed", 200