Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

💻 Aplicação de gestão de clientes desenvolvida em Django

NotificationsYou must be signed in to change notification settings

eliabeleal/course-django-projetoFinal

Repository files navigation

Antes de iniciar a configuração do projeto, é importante realizar a migração do módulo de clientes criado na primeira fase do curso. Basta apenas copiar e colar as pastasclientes etemplates, colocando a pastatemplates dentro declientes.

Configurando o projeto

  1. Definir a aplicação nogestao_clietes/settings.py

    INSTALLED_APPS= ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','clientes',]
  2. Apontar asgestao_clietes/urls.py para a aplicação

    fromdjango.contribimportadminfromdjango.urlsimportpath,includefromclientesimporturlsasclientes_urlsurlpatterns= [path('clientes/',include(clientes_urls)),path('admin/',admin.site.urls),]
  3. Migrando a aplicação para o banco de dados

    (venv) eliabeleal@DESKTOP:~/projetoFinal/gestao_clientes$ python manage.py migrate
  4. Fazendo a "gaba" para que os arquivos estáticos de mídia seja renderizado.

    Emgestao_clientes/settings.py

    MEDIA_URL='/media/'MEDIA_ROOT='media'

    Emgestao_clientes/urls.py

    fromdjango.confsettingsfromdjango.conf.urls.staticimportstaticurlpatterns= [path('clientes/',include(clientes_urls)),path('admin/',admin.site.urls),]+static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

Segurança (login)

Para que as aplicações não seja acessadas por qualquer pessoa, é preciso que haja uma proteção em todas. E para isso o django provê um sistema de login e logout.

  1. Emclientes/views.py

    Protegendo os métodos com @login_required

    fromdjango.contrib.auth.decoratorsimportlogin_required@login_requireddefpersons_list(request):persons=Person.objects.all()returnrender(request,'person.html', {'persons':persons})
  2. Emsettings.py

    Indicando as URLS de login e o redirecionamento depois de logado

    LOGIN_URL='/login/'LOGIN_REDIRECT_URL='person_list'
  3. Emurls.py

    Criando a url de login e logout

    fromdjango.contrib.authimportviewsasauth_viewsurlpatterns= [path('login/',auth_views.LoginView.as_view(),name='login'),path('logout/',auth_views.LogoutView.as_view(),name='logout'),]

    No django 2.1 foram removidas (ou melhor movidas) algunas views, entre elas as de login. Que agora são usadas como classes.

  4. Emsettings.py

    Informando qual será a pasta usada para os templates do sistema (não são os da aplicação)

    TEMPLATES= [    {'DIRS': ['templates'],    },]
  5. Emtemplates/registration/login.html

    Importanto o formulário para login já disponibilizado pelo django

    <h2>Login</h2><formmethod="post">    {% csrf_token %}    {{form.as_p}}<buttontype="submit">Login</button></form>
  6. Emcliente/templates/person.html

    Crindo um link para logout

    <ahref="{% url 'logout' %}">Sair</a>

Home

  1. Antes é preciso iniciar uma nova aplicação no projeto que tratará da página inicial

        (venv) eliabeleal@DESKTOP:~/projetoFinal/gestao_clientes$ python manage.py startapp home
  2. Emsettings.py cadastramos a aplicação

    INSTALLED_APPS= ['clientes','home',]
  3. Emgestao_clientes/urls.py criamos uma url vazia e importamos as urls da aplicaçãohome.

    fromhomeimporturlsashome_urlspath('',include(home_urls)),
  4. Emhome/urls.py. Esse arquivo não existe, portanto é preciso criá-lo. Nele direcionamos duas viewshome e my_logout.

    fromdjango.urlsimportpathfrom .viewsimporthome,my_logouturlpatterns= [path('',home,name='home'),path('logout/',my_logout,name='logout'),]
  5. Emhome/views.py. A primeira função está chamando o templatehome. Já a segunda chama a função logout e depois redireciona para o home

    fromdjango.shortcutsimportrender,redirectfromdjango.contrib.authimportlogoutdefhome(request):returnrender(request,'home.html')defmy_logout(request):logout(request)returnredirect('home')
  6. Emhome/templates/home.html. Aqui temos algumas variáveis e métodos já disponibilizados pelo django

    <body><h1>Seja bem vindo</h1>    {% if user.is_authenticated %}<p>Ola {{user.username}}</p><ahref="{% url 'logout' %}">Sair</a>    {% else %}<ahref="{% url 'login' %}">Entrar</a>    {% endif %}</body>

Usando o postgres

  1. Após o download do postgres, é necessário fazer a configuração dosettings.py. Nele existe um link para a documentação do django que nos dá a configuração do django para o postegres.

    # https://docs.djangoproject.com/en/2.1/ref/settings/#databasesDATABASES= {'default': {'ENGINE':'django.db.backends.postgresql','NAME':'gestao_clientes','USER':'postgres','PASSWORD':'labindy','HOST':'127.0.0.1','PORT':'5432',    }}
  2. Para fazer a migração das aplicações, é necessário instalar opip install psycopg2

  3. Logo depois pode-se migrar usando opython manage.py migrate

  4. Como é um novo banco de dados usando o comandopython manage.py createsuperuser criamos um super usuário. Se tudo der "Ok", temos um novo banco de dados em nossa aplicação.

Deploy no Heroku

Step to Step

Deploy

GitHeroku

BootstrapCDN

  1. Emgestao_clientes/templates.

    Herança de templatesCriando um arquivo como base para os templates

    <!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"><title>{%block title%}{%endblock%}</title></head><body>    {%block main%}    {%endblock%}</body></html>

    Basta agora importar todos os blocos criados para os demais templates, que eles rederizarão o bootstrap.

  2. Nos demais html's, usa-se oextends. Emhome/templates/home.html. Para custumizar as demais tags do html, basta usar as classes do bootstrap.

    {%extends 'base.html'%}{%block title%}Seja Bem Vindo{%endblock%}{%block main%}<h1>Seja bem vindo</h1>    {% if user.is_authenticated %}<p>Ola {{user.username}}</p><ahref="{% url 'logout' %}">Sair</a>    {% else %}<ahref="{% url 'login' %}">Entrar</a>    {% endif %}{%endblock%}

Personalizando formulários

Django Bootstrap Form

Ajustes de grid

Grid

About

💻 Aplicação de gestão de clientes desenvolvida em Django

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp