Файл: Современные языки программирования.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 29.03.2023

Просмотров: 158

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Язык и его интерпретатор (Zend Engine) разрабатываются группой энтузиастов в рамках проекта с открытым кодом. Проект распространяется под собственной лицензией, несовместимой с GNU GPL.

В области веб-программирования, в частности серверной части, PHP — один из популярных сценарных языков (наряду с JSP, Perl и языками, используемыми в ASP.NET).

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств и дополнительных модулей для разработки веб-приложений. Основные из них:

  • автоматическое извлечение POST- и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
  • взаимодействие с большим количеством различных систем управления базами данных через дополнительные модули (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO), Redis;
  • автоматизированная отправка HTTP-заголовков;
  • работа с HTTP-авторизацией;
  • работа с cookies и сессиями;
  • работа с локальными и удалёнными файлами, сокетами;
  • обработка файлов, загружаемых на сервер;
  • работа с XForms.

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемуся на данных поисковых систем, в мае 2016 года PHP находился на 6 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, Wikipedia и др.

Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).

ЧАСТЬ 3. Разработка веб-приложения на основе фреймворка Django.

Django (Джанго) - свободный фреймворк для веб-приложений на языке Python, использующий шаблон проектирования MVC. Проект поддерживается организацией Django Software Foundation. Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например, Ruby on Rails). Один из основных принципов фреймворка - DRY (англ. Don't repeat yourself). Также, в отличие от других фреймворков, обработчики URL в Django конфигурируются явно при помощи регулярных выражений. Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.


Суть проекта заключается в добавлении статей с административной панели и отображения их на странице статьи.

Веб-приложение разрабатывается в современной среде разработки JetBrains PyCharm 2019.2.4. Прежде чем переходить к разработке, на операционной системе должен быть предустановлен Python, в моём случае ОС Windows 10 Pro (Рис 1.)

Рис 1. Версия Python 3.8

А также должны быть подключены следующие модули, которые отображены на рис 2.

Рис 2. Отображение модулей подключенные в проекте.

Рис 3. Структура проекта

И так, при помощи команды startproject создалась директория Blog, сейчас ее рассмотрим:

  1. manage.py: Скрипт, который позволяет вам взаимодействовать с проектом Django.
  2. blog/__init__.py: Пустой файл, который указывает Python, что текущий каталог является пакетом Python.
  3. blog/settings.py: Настройки/конфигурация проекта.
  4. blog/urls.py: Конфигурация URL-ов для вашего проекта Django.
  5. blog/wsgi.py: Точка входа вашего проекта для WSGI-совместимых веб-серверов.
  6. blog/asgi.py: Точка входа вашего проекта для ASGI-совместимых веб-серверов.

Рассмотрим теперь главный конфигурационный файл settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) //путь к главной директории проекта
SECRET_KEY = 'lly9fw$$09a43wc^6s6qw#s$sz821&@kz(p7jo6yj#moju*=6a' //секретный ключ проекта
DEBUG = True //диагностика проекта на
ALLOWED_HOSTS = [] // описание хоста, где лежит будет прослушиваться данный проект
INSTALLED_APPS = [ //подключение приложений
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'webexamle.apps.WebexamleConfig',
'startapp.apps.StartappConfig',
]
MIDDLEWARE = [ // описание зависимостей
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
ROOT_URLCONF = 'Blog.urls' //главный маршрутный файл
TEMPLATES = [ //шаблоны проекта
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
WSGI_APPLICATION = 'Blog.wsgi.application'

DATABASES = { // база данных
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}


AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
LANGUAGE_CODE = 'ru'

TIME_ZONE = 'Europe/Moscow'

USE_I18N = True

USE_L10N = True

USE_TZ = True



STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
]
STATIC_URL = '/static/'

После создания проекта и настройки файла settings.py требуется создать супер-пользователя для управления административной панелью, используя команду python manage.py createsuperuser. Затем предлагается сгенерировать логин, почтовый адрес и пароль администратора административной панели управления сайтом.

Рис 4. Генерация супер-пользователя.

После всех этих манипуляция вводим команду python manage.py migrate, для того чтобы создались таблицы в БД.

Рис 5. Созданные таблицы в БД.

Теперь перейдем к файлу urls.py, в каталоге blog. Файл urls.py, в данном каталоге является главным маршрутным файлом.

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
path('admin/', admin.site.urls), //админская часть
path('', include('webexamle.urls')), // главная страница блога
path('news/',include('startapp.urls')), // страница новостей
]

Итак, в данном проекте создано два приложения, одно из них это startapp.

Рис 6. Описание приложения startapp

Как видно на рис 2. Приложения в себя включает файл models.py, для генераций таблиц в БД, в приложении используется база данных – Sqlite3. Рассмотрим поподробнее файл models.py, а также затроним файлы в папке migrations.

Содержимое файла models.py:

from django.db import models


class Articles(models.Model):
title = models.CharField(max_length=120) // поле для заголовка статьи
post = models.TextField() // описание статьи
date = models.DateTimeField() // дата публикации

def __str__(self):
return self.title

Тем самым обозначили нужные поля для дальнейшего заполнения. После этого используем команду python manage.py migrate, после этой команды python manage.py makemigrations. После данных операций у нас в приложении появились файл 0001_initial.py:
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Articles',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=120)),
('post', models.TextField()),
('date', models.DateTimeField()),
],
),
]

Как видно в описании, это поля в БД на Рис 7.

Рис 7. Подключение Bootstrap стилей к проекту.

Bootstrap настраивается в главном конфигурационном файле, а также прописывается уже путь к файлу уже в файле в нашем случае в главном файле wraper.html:


{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Личный блог</title>

<link rel="stylesheet" href="{% static "css/bootstrap.min.css" %}"/>
</head>
<body>
<div class="jumbotron">
<div class="container">
<h1>{% include "blog/includes/some_html.html" %}</h1>
{% block content %}
{% endblock %}
<p>
<a href="/" class="btn btn-success btn-lg">Главная страница</a>
<a href="/news" class="btn btn-primary btn-lg">Новости &raquo;</a>
<a href="/contact" class="btn btn-info btn-lg">Контакты</a>
</p>
</div>
</div>
<div class="container">
<img src="{% static "image/mercedes-amg-cls-53-cls-53-amg-mercedes-benz.jpg" %}" class="img-thumbnail">
<hr>
&copy; Все права защищены 2020
</div>
</body>
</html>

После этого предстоит настроить подключение к шаблонам:

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
return render(request,'blog/homepage.html')
# Create your views here.

def contact(request):
return render(request,'blog/basic.html', {'values':['Если у вас остались вопросы задавайте мне по телефону, ', '(926)729-23-98','email: oleg.shavernev21993@gmail.com']})

Рис 8. Страница новостей

Рис 9. Главная страница

Рис 9. Страница контактов.

Рис 10. Логи сервера.

Рис 11. Страница статьи.

Заключение

В данной курсовой работе были проанализированы разные подходы к разработке ПО, а также произведен анализ по современным языкам программирования. Было мною написано веб-приложение, для отображение нового функционала, который можно использовать при помощи фреймворка Django.

СПИСОК ЛИТЕРАТУРЫ