Coder Social home page Coder Social logo

marianacvn / pbd-project Goto Github PK

View Code? Open in Web Editor NEW

This project forked from celiojunior-linux/pbd_project

0.0 0.0 0.0 12.16 MB

PBD 2022 - Sistema Auto Mecânica

Home Page: https://auto-mecanica-pbd.herokuapp.com/

License: MIT License

JavaScript 9.64% Python 6.42% CSS 68.75% HTML 6.85% PLpgSQL 0.04% SCSS 8.29% Procfile 0.01%

pbd-project's Introduction

Projeto da disciplina de projeto de banco de dados

Sobre

O projeto foi desenvolvido utilizando o framework Django. Optamos por utilizar postgresql como banco de dados, pois o django dá melhor suporte.

Ajustes Iniciais

Para fazer a instalação do sistema em sua máquina local, recomendo que esteja executando o python na versão 3.8 ou superior.

  • Dentro da pasta do projeto, crie um ambiente virtual e ative-o.
$ python -m venv venv
  • Ativação no windows:
$ venv\Scripts\activate
  • Ativação em sistemas baseados em Unix:
$ source venv/bin/activate 
  • Instale os requisitos do projeto:
$ pip install -r requirements.txt 

Configurações

[Opcional]

O ORM do Django é compatível com MySQL, e pode ser configurado da seguinte forma:

$ pip install mysqlclient
  • 4º - Após configurar o servidor MySQL, crie um novo database:
CREATE DATABASE aml_db;
  • 5º - Crie um novo usuário:
CREATE USER 'aml_dbadmin'@'localhost' IDENTIFIED BY 'secret123';
  • 6º - Defina alguns privilégios administrativos para o usuário:
GRANT ALL PRIVILEGES ON `aml_db` . * TO 'aml_dbadmin'@'localhost';
FLUSH PRIVILEGES; 
  • 7º - Localize a variável "DATABASES" no arquivo settings.py do projeto
# Arquivo: aml_ltda/settings.py (antes)
...
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": env("DATABASE_NAME"),
        "USER": env("DATABASE_USER"),
        "PASSWORD": env("DATABASE_PASSWORD"),
        "HOST": env("DATABASE_HOST"),
        "PORT": env("DATABASE_PORT"),
    }
}
...
# Arquivo: aml_ltda/settings.py (depois)
...
DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.mysql",
        "NAME": env("DATABASE_NAME"),
        "USER": env("DATABASE_USER"),
        "PASSWORD": env("DATABASE_PASSWORD"),
        "HOST": env("DATABASE_HOST"),
        "PORT": env("DATABASE_PORT"),
    }
}
...
  • 9º - Rode as migrations para criar as tabelas no banco de dados.
$ # Criação de tabelas
$ python manage.py makemigrations
$ python manage.py migrate
  • 10º carregue os registros no projeto a partir do arquivo "dump.json" na pasta raíz:
$ python manage.py loaddata dump.json
  • 11º - Execute o servidor local:
$ python manage.py runserver
  • Pronto, o servidor Django agora está executando com seu banco de dados MySQL, seja feliz. (O processo de configuração do PostgreSQL é bem similar, com exceção das configurações do driver, portanto não irei detalhá-lo aqui).

Notas para o professor:

  • Na pasta do projeto eu incluí um arquivo .env com as configurações que utilizei no database, além das chaves para configurar o recaptcha. Caso não seja possível utilizar o recaptcha, para removê-lo, vá até apps/authentication/views.py e substitua a variável form_class para "AuthenticationForm" (sem as aspas).

  • Antes

...
class AMLLoginView(LoginView):
    template_name = "auth/login.html"
    form_class = AMLAuthenticationForm # Substituir aqui

    def form_valid(self, form):
        employee = authenticate(
            self.request,
            username=self.request.POST["username"],
            password=self.request.POST["password"],
        )
        login(self.request, employee, "apps.authentication.backends.EmployeeBackend")
        messages.success(self.request, "Login efetuado com sucesso!")
        return HttpResponseRedirect(self.get_success_url())

    def form_invalid(self, form):
        messages.warning(self.request, "CPF ou senha inválidos!")
        return super(AMLLoginView, self).form_invalid(form)
  • Depois
from django.contrib.auth.views import AuthenticationForm # Importar o formulário de autenticação padrão do django

class AMLLoginView(LoginView):
    template_name = "auth/login.html"
    form_class = AuthenticationForm

    def form_valid(self, form):
        employee = authenticate(
            self.request,
            username=self.request.POST["username"],
            password=self.request.POST["password"],
        )
        login(self.request, employee, "apps.authentication.backends.EmployeeBackend")
        messages.success(self.request, "Login efetuado com sucesso!")
        return HttpResponseRedirect(self.get_success_url())

    def form_invalid(self, form):
        messages.warning(self.request, "CPF ou senha inválidos!")
        return super(AMLLoginView, self).form_invalid(form)

pbd-project's People

Contributors

celiojunior-linux avatar marianacvn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.