Project Log - acremonezi/Projeto-Integrador-em-Computacao-I GitHub Wiki
01 - Project Start up
-
Create Virtual Environment
python3 -m venv venv
-
Activate Virtual Environment:
source venv/bin/activate
-
Install Django Library:
pip install django pillow
-
Collecting django Downloading Django-3.2.8-py3-none-any.whl (7.9 MB) |████████████████████████████████| 7.9 MB 6.6 MB/s Collecting asgiref<4,>=3.3.2 Using cached asgiref-3.4.1-py3-none-any.whl (25 kB) Collecting pytz Using cached pytz-2021.3-py2.py3-none-any.whl (503 kB) Collecting sqlparse>=0.2.2 Using cached sqlparse-0.4.2-py3-none-any.whl (42 kB) Installing collected packages: asgiref, pytz, sqlparse, django Successfully installed asgiref-3.4.1 django-3.2.8 pytz-2021.3 sqlparse-0.4.2
-
-
Create Django Base Project: Name = certification
django-admin startproject certification .
-
Edit ./certification/Settings.py
LANGUAGE_CODE = 'pt-BR'
TIME_ZONE = 'America/Sao_Paulo'
import os
- Add on TEMPLATES =
'DIRS': [os.path.join(BASE_DIR, 'templates')],
- Create directory:
./templates
-
Create Django App: Name = student
python3 manage.py startapp student
- Django user a MVT structure:
- M: Model responsable for DB.
- V: View responsable for the project logic.
- T: Template responsable for what user's actually see.
-
Create URL on ./certification/urls.py
-
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('auth/', include('student.urls')), ]
-
-
Create URL on ./student/urls.py
-
from django.urls import path from . import views urlpatterns = [ path('signup/', views.signup, name = 'signup'), path('signin/', views.signin, name = 'signin'), path('signup_validate/', views.signup_validate, name = 'signup_validate'), path('signin_validade/', views.signin_validate, name = 'signin_validate'), ]
-
-
Create VIEW functions to URLs on ./student/views.py
-
from django.shortcuts import render from django.http import HttpResponse # Create your views here. # SignUP def signup(request): # return HttpResponse('function signup') // test view and urls status = request.GET.get('status') return render(request, 'signup.html', {'status': status}) # SignIN def signin(request): # return HttpResponse('function signin') // test view and urls status = request.GET.get('status') return render(request, 'signin.html', {'status': status})
-
-
Create Templates:
./template/base.html
./student/template/signin.html
./student/template/signup.html
-
Create Models on ./student/models.py:
-
from django.db import models # Create your models here. class Student(models.Model): firstname = models.CharField(max_length = 100) lastname = models.CharField(max_length = 100) email = models.EmailField() password = models.CharField(max_length = 64) def __str__(self) -> str: return self.firstname
-
-
Create DB:
- During development we will use SQLite3 and after finish it, we will migrate it to MySQL.
python3 manage.py makemigrations
python3 manage.py migrate
-
Create SuperUser:
python3 manage.py createsuperuser
-
Register the student App on Django Admin Panel by editing ./student/admin.py:
-
from django.contrib import admin from .models import Student # Register your models here. # Simple Method #admin.site.register(Student) # Advanced Method @admin.register(Student) class UserAdmin(admin.ModelAdmin): list_display = ('firstname', 'lastname', 'email', 'password') search_fields = ('firstname', 'lastname', 'email') readonly_fields = ('password',)
-
-
Several other changes on:
- URL
- Views
- Templates.
02 - Project Start up
- Create SignIN/SignUP funcions:
./template/base.html
./student/template/signin.html
./student/template/signup.html