0% found this document useful (0 votes)
12 views

Lab 5

Uploaded by

milkysdave
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views

Lab 5

Uploaded by

milkysdave
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

МІНІСТЕРСТВО ОСВІТИ І НАУКИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА»

Web-технології та Web-дизайн
Лабораторна робота робота №5
Варіант 15

Виконав студент
групи ІР-22
Матвійчук Андрій.

Львів 2020
ГИТ: https://github.com/thefreekley/webLab3-5/tree/master/mysite/main/templates/main

Завдання

5. CRUD Javascript App: Backend


Description: In the last part of working on the website you have to
implement all Create/Read/Update/Delete operations which must be made via
the corresponding HTTP methods in your REST API.

Important. You don't have to make a backend from the beginning - connect
an existing one that you worked on in the first year.
If you don’t have a backend server, you should create a new REST API using
any preferred technology.
views.py

Файл виконує роль вьювера. Він бере html файли та підносить їх на


сторінку веб-браузера якщо на це є запрос.
from django.shortcuts import render,redirect
from .models import Printer
from .forms import PrinterForm
from django.views.generic import UpdateView,DeleteView

def view_page(request):
printer=Printer.objects.order_by('-price')
return render(request,'main\View Page.html', {'printer':printer})

class PrinterUpdateView(UpdateView):
model = Printer
template_name = 'main\Edit Page.html'
form_class = PrinterForm

class PrinterDeleteView(DeleteView):
model = Printer
success_url = '/'
def get(self, request, *args, **kwargs):
return self.post(request, *args, **kwargs)

def create_page(request):
error= False
if request.method == 'POST':
form = PrinterForm(request.POST)
if form.is_valid():
form.save()
return redirect('view')
else:
error=True

form = PrinterForm()
date = {
'form':form,
'error':error
}
return render(request,'main\Create Page.html',date)

urls.py

Підключаю path виклики


from django.urls import path
from . import views

urlpatterns= [
path('', views.view_page, name='view'),
path('create_page',views.create_page, name='create'),
path('<int:pk>/update', views.PrinterUpdateView.as_view(), name='update'),
path('<int:pk>/delete', views.PrinterDeleteView.as_view(), name='delete')
]
models.py

Роблю модель для віртуальної об’єктної бази данних

from django.db import models

class Printer(models.Model):
title= models.CharField("Title",max_length=40)
description = models.CharField("Description",max_length=200)
speed = models.IntegerField("Speed of movement")
price = models.IntegerField("Price")
date = models.DateTimeField("Date of publication")

def __str__(self):
return self.title

def get_absolute_url(self):
return '/'

forms.py
Форма для відправок данних на сервер із веб-сторінки
from .models import Printer
from django.forms import ModelForm,TextInput,Textarea

class PrinterForm(ModelForm):
class Meta:
model = Printer
fields = ['title','description','speed','price','date']
widgets = {
"title":TextInput(attrs={
'class': 'form__area_title-input',
'placeholder' : 'Text...'
}),
"description": Textarea(attrs={
'class':'form__area_input-description'
}),
"price": TextInput(attrs={
'type': 'number',
'class': 'form__control',
'min':'0',
'value':'1'
}),
"speed": TextInput(attrs={
'type': 'number',
'class': 'form__control',
'min': '0',
'value': '1'
}),
"date": TextInput(attrs={
'class':'form__control',
'type':"date"
})

You might also like