GithubHelp home page GithubHelp logo

julia-stamborovski / django-alura-space Goto Github PK

View Code? Open in Web Editor NEW
3.0 1.0 0.0 7.84 MB

Este é um projeto pessoal de estudo que segue as aulas da formação "Django: crie aplicações em Python" da Alura. O objetivo é aprender a criar aplicações web com o framework Django, que é amplamente utilizado para desenvolvimento em Python.

Python 9.15% HTML 6.02% CSS 42.56% JavaScript 42.27%
django python django-templates django4 mvt-architecture pip python-dotenv virtualenv boas-praticas good-practices alura

django-alura-space's Introduction

Django - Criando aplicações em python

Capa do projeto, com um astronauta no espaço com o texto "Alura Space Django"

Templates e Boas Práticas

Alura-Space

O Django é uma ótima ferramenta para fazer front-end e back-end trabalharem em sintonia.

Arquitetura

Separação das responsabilidades das diferentes partes do sistema

Duas aplicações distintas:
🪲 Galeria - Inserção de novas fotografias;
🪲 Users - Processos relativos aos usuários (cadastro, login e autenticação).

Ambiente de desenvolvimento

IDE

Vscode

Extensões

SQlite Viewer - Florian Klampfer

Linguagem

Python 3.10.9

Instalação Pip

(Sistema Windows)

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py 

Ambiente Virtualizado

virtualenv

pip install virtualenv

Template

Link para baixar o Template

Django é um framework escrito em Python e focado no desenvolvimento de projetos. Ele é uma espécie de “caixa de ferramentas” com várias soluções para o desenvolvimento de projetos.

Virtualenv

python3 --version
virtualenv --version
venv/Scripts/Activate 
pip install django

Instalar o Django com o pip, um programa de gerenciamento de pacotes do Python.

Servidor

Visualizar todas as dependências do projeto e os módulos que precisam ser instalados para que o projeto funcione:

pip freeze 
Informa a versão de Django, sqlparse, sgireft

asgiref==3.6.0 Django==4.2 sqlparse==0.4.3 tzdata==2023.3

Execute o comando:

pipfreeze > requiriments.txt 

Setup

Django-admin startproject setup . 

Será criado uma pasta chamada "setup", dentro de "alura-space" , com as configurações do projeto

pip install -r requirements.txt

o pip garante a instalação de todos os pacotes e módulos incluídos no arquivo "requirements.txt".

manage.py

Responsável por realizar a maioria dos comandos que utilizaremos para o desenvolvimento de aplicações Django e também por subir servidores.

⚠️ Utilizar a versão do Python da venv

python manage.py runserver 

Configuração do interpretador no VS Code

O python que instalmos na virtualenv "CTRL + SHIFT + P" --> Pesquisar "Interpretador" e selecionar python:selecionar interpretador --> Insira o caminho do interpretador e depois em localizar.... Navegando até alura_space > .venv > Scripts, selecione o arquivo python.exe e clique em Selecionar interpretador

Idioma Principal e Fuso Horário

setup > setting.py

setting.py

Arquivo que contém todas as configurações do projeto

  • dependências;
  • templates;
  • e mais.

Linhas 106 e 108 - LANGUAGE_CODE e TIME_ZONE

Versionamento

Dependência python-dotenv

pip install python-dotenv
pip freeze > requirements.txt

gitignore.io Digitando "Django", irá gerar a definição de cada arquivo que por motivos de segurança, não podemos enviar para o Github.

Criação do primeiro app

python manage.py startapp galeria 

Para sinalizar que o app "galeria" faz parte do nosso projeto. "setup > settings.py"

Em INSTALLED_APPS, vamos passar o app:

INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'galeria', <-- o app que acabamos de criar!

Persistência de dados e Admin

Django ORM --> O Django traduz uma classe para uma tabela no banco de dados - Bruno Divino

python manage.py makemigrations
python manage.py migrate

Com o (.venv)

Criando Dados

Para adicionar um item

python manage.py shell 

Para importar photography

from galeria.models import photography

Após importar, a criação do dado:

picture = photography(name="NOME_DA_FOTOGRAFIA, legend="LEGENDA_DA_FOTOGRAFIA")

Para salvar

picture.save() 

Exibir os objetos criados no model de photography

photography.objects.all() 

Criação do Administrator

python manage.py createsuperuser 

Autenticação de formulários e alerta

Funcionalidades de login e de cadastro de novas pessoas com o banco de dados interno do Django, utilizando o users do Django admin. Será aplicado também uma regra de negócio: apenas pessoas cadastradas podem visualizar a galeria da página inicial.

Instrutor

Guilherme Lima e Bruno Divino
django

django-alura-space's People

Contributors

shiizuko avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

django-alura-space's Issues

[pt-br] Correção do nome de classe no models.py / [en-us] Correction of class name in models.py

[pt-br]

A classe photography no arquivo "models.py" está com o nome incorreto, pois deveria estar escrita com "P" maiúsculo para seguir as boas práticas de nomenclatura.

Isso pode causar problemas no futuro e dificultar a manutenção do código. Além disso, já foi realizada a migration e criado o banco de dados com essa classe.

Sendo assim, a correção do nome da classe para Photography é necessário.

Código atual está assim:

class photography(models.Model):
    name = models.CharField(max_length=100, null=False, blank=False)
    lengend = models.CharField(max_length=150, null=False, blank=False)
    description = models.TextField(null=False, blank=False)
    picture = models.CharField(max_length=100,null=False, blank=False)

Precisa ser atualizado para:

class Photography(models.Model):
    name = models.CharField(max_length=100, null=False, blank=False)
    lengend = models.CharField(max_length=150, null=False, blank=False)
    description = models.TextField(null=False, blank=False)
    picture = models.CharField(max_length=100,null=False, blank=False)

Com base na situação, acredito que a possível resolução seria:

  1. Alterar o nome da classe photography para Photography no arquivo models.py.
  2. Criar uma nova migration para aplicar essa alteração no banco de dados, executando o seguinte comando:
    python manage.py makemigrations
  3. Aplicar a nova migration ao banco de dados, com o comando:
    python manage.py migrate
  4. Verificar se foi alterada:
    python manage.py sqlmigrate <nome_aplicação> <nome_nova_migracao_criada>
  5. Verificar se o código foi atualizado para o nome Photography

[en-us]

The class photography in the "models.py" file has an incorrect name, as it should be written with an uppercase "P" to follow good naming conventions.

This can cause problems in the future and make the code maintenance difficult. Additionally, a migration has already been performed and the database has been created with this class.

Therefore, correcting the name of the class to Photography is necessary.

The current code is as follows:

class photography(models.Model):
    name = models.CharField(max_length=100, null=False, blank=False)
    lengend = models.CharField(max_length=150, null=False, blank=False)
    description = models.TextField(null=False, blank=False)
    picture = models.CharField(max_length=100,null=False, blank=False)

It needs to be updated to:

class Photography(models.Model):
    name = models.CharField(max_length=100, null=False, blank=False)
    lengend = models.CharField(max_length=150, null=False, blank=False)
    description = models.TextField(null=False, blank=False)
    picture = models.CharField(max_length=100,null=False, blank=False)

Based on the situation, a possible resolution would be:
Change the class name photography to Photography in the models.py file.
Create a new migration to apply this change to the database by running the following command:
python manage.py makemigrations
Apply the new migration to the database with the command:
python manage.py migrate
Verify that the migration was successful by running:
python manage.py sqlmigrate <app_name> <migration_name>
Check that the code has been updated to use the name Photography.

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.