shrong> App/models/user.py
Код: Выделить всё
from datetime import datetime
from app.app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
public_id = db.Column(db.String, unique=True)
admin = db.Column(db.Boolean)
username = db.Column(db.String(50), unique=True)
email = db.Column(db.String(50), unique=True)
password = db.Column(db.String(100))
subscription_plan = db.Column(db.Integer)
created_at = db.Column(db.DateTime, index=True,
default=datetime.utcnow())
updated_at = db.Column(db.DateTime, index=True, default=datetime.utcnow())
< /code>
[b] App/app.py[/b]
from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from werkzeug.security import generate_password_hash
import uuid
from app.models.user import User
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = #SQLALCHEMY_DATABASE_URI
db = SQLAlchemy(app)
# ... CRUD routes that will use User
@app.route('/user', methods=['POST'])
def create_user():
data = request.get_json()
hashed_password = generate_password_hash(data['password'])
new_user = User(
public_id=str(uuid.uuid4()),
username=data['username'],
password=hashed_password,
email=data['email'],
admin=data['admin'],
subscription_plan=data['subscription_plan']
)
db.session.add(new_user)
db.session.commit()
return jsonify({'message': 'User successfully created.'})
if __name__ == '__main__':
app.run(port=5000, debug=True)
Я также хотел бы отодвинуть свои маршруты отсюда и в отдельные файлы для лучшей организации, поэтому пытаясь понять лучший способ избежать круговых импорта. Любая помощь очень ценится!
Подробнее здесь: https://stackoverflow.com/questions/487 ... emy-models