Можно ли принимать db-запросы из папки контроллера в папку модели и как вызывать ее в контроллере - PullRequest
1 голос
/ 02 октября 2019

ссылка на полную папку: https://github.com/rashmiranjanrrs/todo-app-in-MVC-Architechture app / controller / UserController

from flask import request, jsonify
from app import db
from app.model.Task import Task
from app.model.User import User

import datetime
from flask_httpauth import HTTPBasicAuth

auth = HTTPBasicAuth()

class TaskController:

    @auth.get_password
    def pass_auth(username):
        user = User.query.filter_by(username=username).first()
        if user is not None:
            return user.password
        else:
            return None

    @auth.login_required
    def addtask():
        data = request.get_json()
        content = data['content']
        task = Task(content, user=User.query.filter_by(username=auth.username()).first())
        db.session.add(task)
        db.session.commit()
        return jsonify({
            'username': auth.username(),
            'task-id': task.id,
            'content': task.content
        })

    @auth.login_required
    def markdone():
        data = request.get_json()
        task_id = data['task_id']
        task = Task.query.get(task_id)
        if task is None:
            return jsonify({
                'status': 'Failed'
            })
        task.done = True
        task.end_date = datetime.datetime.now()
        db.session.commit()
        return jsonify({
            'content': task.content,
            'add_date': task.add_date,
            'end_date': task.end_date,
            'task_completed': task.done
        })

    @auth.login_required
    def deletetask():
        data = request.get_json()
        task_id = data['task_id']
        task = Task.query.filter_by(id=task_id).first()
        if not task:
            return jsonify({'message': 'No task found!'})

        deleted_task = jsonify({
            'status': 'success',
            'task_id': task.id,
            'content': task.content,
            'task_completed': task.done
        })
        db.session.delete(task)
        db.session.commit()
        return deleted_task

    @auth.login_required
    def alltasks():
        user = User.query.filter_by(username= auth.username()).first()
        if user is None:
            return jsonify({
                'status': 'failed'
            })
        task_list = {}
        for task in user.tasks:
            task_list[task.id] = {'content': task.content,
                                  'add_date': task.add_date,
                                  'task_completed': task.done}
        return jsonify(task_list)

app / model / Task

Здесь можно определить операции CRUD, связанные с таблицей TASK. Использовать базу данныхсоединение со службой базы данных в этом конструкторе задач, чтобы оно было доступно во всех операциях TASK crud. Средства CRUD -> Создать, прочитать, обновить, удалить действия для таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...