The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

Книга посвящена разработке веб-сайтов на языке Python с применением веб-фреймворка Django. Представлены новинки Django 4 и дано наиболее полное описание его инструментов: моделей, контролеров, шаблонов, средств обработки пользовательского ввода, включая выгруженные файлы, разграничения доступа, посредников, сигналов, инструментов для отправки электронной почты, кэширования и пр. Рассмотрены дополнительные библиотеки, производящие обработку BBCode, CAPTCHA, вывод графических миниатюр, аутентификацию через социальные сети (в частности, "ВКонтакте"), интеграцию с Bootstrap. Рассказано о программировании веб-служб REST, использовании и настройке административного веб-сайта Django, публикации сайтов с помощью веб-сервера Uvicorn, работе с базами данных PostgreSQL, локализации строк, форматов и временных зон. Подробно описано создание полнофункционального веб-сайта — электронной доски объявлений.

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by BHV.RU Publishing House, 2023-04-08 02:08:49

Django 4. Практика создания веб-сайтов на Python

Книга посвящена разработке веб-сайтов на языке Python с применением веб-фреймворка Django. Представлены новинки Django 4 и дано наиболее полное описание его инструментов: моделей, контролеров, шаблонов, средств обработки пользовательского ввода, включая выгруженные файлы, разграничения доступа, посредников, сигналов, инструментов для отправки электронной почты, кэширования и пр. Рассмотрены дополнительные библиотеки, производящие обработку BBCode, CAPTCHA, вывод графических миниатюр, аутентификацию через социальные сети (в частности, "ВКонтакте"), интеграцию с Bootstrap. Рассказано о программировании веб-служб REST, использовании и настройке административного веб-сайта Django, публикации сайтов с помощью веб-сервера Uvicorn, работе с базами данных PostgreSQL, локализации строк, форматов и временных зон. Подробно описано создание полнофункционального веб-сайта — электронной доски объявлений.

Keywords: Django

Глава 1. Основные понятия Django. Вывод данных 49 Сохраним исправленный модуль и закроем его — больше он нам не понадобится. Запустим отладочный веб-сервер и войдем на административный сайт, перейдя по интернет-адресу http://localhost:8000/admin/. Появится страница входа с формой (рис. 1.5), в которой нужно набрать имя и пароль, введенные при создании суперпользователя, и нажать кнопку Войти. После успешного входа будет выведена страница со списком приложений, зарегистрированных в проекте, и объявленных в этих приложениях моделей (рис. 1.6). Рис. 1.5. Веб-страница входа административного веб-сайта Django Рис. 1.6. Веб-страница списка приложений административного веб-сайта Но постойте! В списке присутствует только одно приложение — Пользователи и группы (так обозначается встроенное приложение django.contrib.auth) — с моделями Группы и Пользователи. Где же наше приложение bboard и его модель Bb? Чтобы приложение появилось в списке административного сайта, его нужно явно зарегистрировать там. Откроем модуль административных настроек admin.py пакета приложения bboard и заменим его содержимое кодом, представленным в листинге 1.12.


50 Часть I. Вводный курс Листинг 1.12. Код модуля admin.py пакета приложения bboard (выполнена регистрация модели Bb на административном сайте) from django.contrib import admin from .models import Bb admin.site.register(Bb) Мы вызвали метод register() у объекта класса AdminSite, представляющего сам административный сайт и хранящегося в переменной site модуля django.contrib. admin. Этому методу мы передали в качестве параметра ссылку на класс нашей модели Bb. Как только мы сохраним модуль и обновим открытую в веб-обозревателе страницу списка приложений, сразу увидим, что наше приложение также присутствует в списке (рис. 1.7). Совсем другое дело! Рис. 1.7. Приложение bboard в списке приложений административного веб-сайта Каждое название модели в этом списке представляет собой гиперссылку, щелкнув на которой мы попадем на страницу списка записей этой модели. Например, на рис. 1.8 показана страница списка записей, хранящихся в модели Bb. Сразу отметим, что в левой части страницы выводится список приложений и присутствующих в них моделей, подобный показанному на рис. 1.6. Так что имеется возможность при необходимости переключиться на любую другую модель. Если же этот список мешает работе, его можно скрыть, щелкнув расположенную в левой части страницы небольшую двойную стрелку, направленную влево. Вновь вывести скрытый список можно, щелкнув ту же стрелку, которая в этом случае будет направлена вправо. Что касается списка записей, то мы можем:  добавить новую запись — щелкнув на гиперссылке Добавить <имя класса модели>. Будет выведена страница добавления новой записи (рис. 1.9). Занеся в элементы управления нужные данные, нажмем кнопку:


Заключение Вот и закончена книга о программировании веб-сайтов с помощью великолепного веб-фреймворка Django. Мы изучили практически все, что нужно для создания сайтов, и даже сделали в качестве практического занятия сайт доски объявлений. И теперь можем с уверенностью и гордостью именовать себя настоящими программистами! Автор описал в книге все основные возможности Django, без которых не обойтись. Однако нельзя объять необъятное, и кое-что все-таки осталось «за кадром». В частности, не были описаны:  подсистема комментирования;  подсистема GeoDjango, предназначенная для разработки геоинформационных систем;  подсистема для разработки средствами фреймворка обычных, статических вебсайтов;  средства для создания карты сайта;  средства для формирования лент новостей в формате RSS и Atom;  инструменты для экспорта данных в форматах CSV и Adobe PDF;  средства для написания своих миграций;  всевозможные вспомогательные инструменты;  множество полезных дополнительных библиотек;  разработка дополнительных библиотек для Django. Обо всем этом рассказано в официальной документации, представленной на домашнем сайте фреймворка. И любой желающий ознакомиться с этими инструментами всегда может обратиться к ней. Что касается дополнительных библиотек, то их в огромном количестве можно найти в PyPI — стандартном репозитории Python. О да, на изучение всех возможностей Django стоит потратить время. Фреймворк Django, как и язык Python, на котором он написан, с честью выдержал проверку временем и занял свое место под солнцем. Он имеет огромную установочную


776 Заключение базу — написанных с его применением сайтов — и внушительную армию поклонников. К которым, автор смеет надеяться, присоединитесь и вы, уважаемые читатели. И — автор полностью уверен в этом — Django еще долгое время будет применяться в веб-строительстве, и если и уйдет когда-нибудь, так сказать, в отставку, то лишь после появления достойного конкурента. Пока их не предвидится... Так что за будущее Django переживать не стоит — наш любимый фреймворк будет применяться еще очень и очень долго. И изучать его имеет смысл, как читая эту книгу, так и обращаясь к тематическим интернет-ресурсам. В табл. З.1 приведен список таких ресурсов. Таблица З.1. Интернет-ресурсы, посвященные Django Интернет-адрес Описание https://www.djangoproject.com/ Официальный сайт фреймворка Django. Дистрибутивы, документация, поддержка https://djangopackages.org/ Подборка дополнительных библиотек и утилит для Django https://django.fun/ru/ Русскоязычная документация по Django https://vk.com/django_framework Группа «ВКонтакте», посвященная Django https://www.python.org/ Официальный сайт языка Python. Дистрибутивы, документация, поддержка https://pypi.org/ Официальный репозиторий Python, содержащий огромное количество дополнительных библиотек https://vk.com/itcookies/ Группа «ВКонтакте», посвященная программированию, в том числе и на Python https://pythonworld.ru/ Русскоязычный сайт для Python-программистов Интернет-адреса официальных сайтов использованных в книге сторонних библиотек приведены в тексте книги, в разделах, посвященных этим библиотекам. Исходные коды разработанного в части IV книги веб-сайта электронной доски объявлений находятся в сопровождающем книгу электронном архиве, который можно скачать с сервера издательства «БХВ» по ссылке https://zip.bhv.ru/ 9785977517744.zip или со страницы книги на сайте https://bhv.ru/ (см. приложение). На этом все. Автор книги прощается и желает вам успехов в веб-программировании. Владимир Дронов


ПРИЛОЖЕНИЕ Описание электронного архива Электронный архив к книге выложен на сервер издательства «БХВ» по интернетадресу: https://zip.bhv.ru/9785977517744.zip. Ссылка на него доступна и со страницы книги на сайте https://bhv.ru/. Содержимое архива описано в табл. П.1. Таблица П.1. Содержимое электронного архива Папка, файл Описание bboard Папка с исходным кодом веб-сайта электронной доски объявлений, разрабатываемого на протяжении части IV книги на Python и Django bbclient Папка с исходным кодом тестового фронтенда, используемого для отладки веб-службы и написанного с применением клиентского веб-фреймворка Angular readme.txt Файл с описанием архива и инструкциями по развертыванию обоих веб-сайтов


778 Заключение


Предметный указатель _ __str__() 125 _meta 124 A aadd() 570 aaggregate() 202 Abs 191 ABSOLUTE_URL_OVERRIDES 124 AbstractUser 509 abulk_create() 160 abulk_update() 160 accept() 217 AccessMixin 367 aclear() 570 aclose() 570 acontains() 202 ACos 191 acount() 201 acreate() 160 action() 625 actions 626 actions_on_bottom 613 actions_on_top 612 actions_selection_counter 613 activate() 592, 596 add 288 add() 152, 154, 378, 568 add_message() 530 add_never_cache_headers() 575 add_post_render_callback() 222 addslashes 291 adecr() 570 adecr_version() 570 adelete() 160, 570 adelete_many() 570 ADJACENT_TO 423 admin_order_field 605 ADMINS 555 aearliest() 201 aexists() 201 afirst() 201 aget() 201, 570 aget_many() 570 aget_or_create() 160 aget_or_set() 570 aggregate() 181 ahas_key() 570 ain_bulk() 202 aincr() 570 aincr_version() 570 aiterator() 202 alast() 201 alatest() 201 alias 659 alias() 183 all() 164 allow_empty 244, 256 allow_future 256 allow_migrate() 95 allow_relation() 96 AllowAny 647 ALLOWED_HOSTS 664 Angular 755 annotate() 182 AnonymousUser 363 api_view() 632 APIView 642 APP_DIRS 271 app_label 124 app_name 208, 230 AppConfig 89 AppDirectoriesFinder 296 APPEND_SLASH 211


780 Предметный указатель ArchiveIndexView 257 ArrayAgg 435 ArrayField 417, 429, 432 ArrayMaxLengthValidator 426 ArrayMinLengthValidator 426 ArraySubquery 438 as_div() 323, 338 as_manager() 392 as_p() 323, 338 as_table() 324, 339 as_ul() 323, 338 as_view() 205, 235 asc() 180 asctime 650 aset() 570 aset_many() 570 ASGI 674 ASin 191 async_only_middleware() 517 async_to_sync() 233 ATan 191 ATan2 192 atomic() 395 ATOMIC_REQUEST 81, 394 atouch() 570 attach() 550 attach_alternative() 552 attach_file() 550 attrs 314 aupdate() 160 aupdate_or_create() 160 AUTH_PASSWORD_VALIDATORS 498 AUTH_USER_MODEL 499 authenticate() 500 AUTHENTICATION_BACKENDS 498 authentication_form 351 AuthenticationForm 351 AUTOCOMMIT 81, 394, 398 autocomplete_fields 617 autoescape 271, 281 AutoField 106 Avg 185 B BACKEND 270, 558 BadSignature 523, 534 BASE_DIR 79 BaseDateListView 256 BaseFormSet 401 BaseGenericInlineFormSet 383 BaseInlineFormSet 342 BaseModelFormSet 332 BBCode 452 BBCODE_ALLOW_CUSTOM_TAGS 459 BBCODE_ALLOW_SMILIES 459 BBCODE_DISABLE_BUILTIN_TAGS 459 BBCODE_ESCAPE_HTML 458 BBCODE_NEWLINE 458 BBCODE_NORMALIZE_NEWLINES 459 BBCodeTextField 455 BICField 450 BICFormField 451 BigAutoField 106 BigIntegerField 105 BigIntegerRangeField 416 BinaryField 106 BitAnd 436 BitOr 436 BitXor 436 block 292 block.super 293 blocktranslate 578 BloomExtension 424 BloomIndex 421 body 217 BoolAnd 436 BooleanField 104, 310 BoolOr 436 Bootstrap 459 bootstrap_alert 464 bootstrap_button 463 bootstrap_css 460 bootstrap_field 464 bootstrap_form 461 bootstrap_form_errors 462 bootstrap_formset 463 bootstrap_formset_errors 463 bootstrap_javascript 460 bootstrap_label 465 bootstrap_messages 464 bootstrap_pagination 465 BoundField 325 BrinIndex 420 BtreeGinExtension 424 BtreeGistExtension 424 BTreeIndex 419 build_absolute_uri() 217 builtins 272 bulk_create() 157 bulk_update 158


Предметный указатель 781 C cache 567 cache ... endcache 566 cache_control() 573 CACHE_MIDDLEWARE_ALIAS 563 CACHE_MIDDLEWARE_KEY_PREFIX 563 CACHE_MIDDLEWARE_SECONDS 563 cache_page() 564 caches 567 CACHES 557 CallbackFilter() 653 can_delete 623 capfirst 286 CAPTCHA 410 captcha.helpers.math_challenge 412 captcha.helpers.random_char_challenge 412 captcha.helpers.word_challenge 412 CAPTCHA_BACKGROUND_COLOR 414 CAPTCHA_CHALLENGE_FUNCT 413 captcha_clean 414 captcha_create_pool 414 CAPTCHA_DICTIONARY_MAX_LENGTH 413 CAPTCHA_DICTIONARY_MIN_LENGTH 413 CAPTCHA_FONT_PATH 413 CAPTCHA_FONT_SIZE 414 CAPTCHA_FOREGROUND_COLOR 414 CAPTCHA_IMAGE_SIZE 414 CAPTCHA_LENGTH 413 CAPTCHA_LETTER_ROTATION 414 CAPTCHA_MATH_CHALLENGE_OPERATOR 413 CAPTCHA_TIMEOUT 413 CAPTCHA_WORDS_DICTIONARY 413 CaptchaField 411 CaptchaTextInput 413 captured_kwargs 230 Case 195 Cast 194 Ceil 190 center 291 changed_data 322 changed_objects 335 changepassword 347 CharField 103, 309 charset 218 check 666 check_for_language() 589 check_password() 499 CheckboxInput 316 CheckboxSelectMultiple 317 CheckConstraint 122 ChoiceField 312 choices 108 Choices 109 Chr 189 chunks() 487 CICharField 418 CIEmailField 418 CITextExtension 424 CITextField 418 class 653 classes 624 clean() 134, 328 clean_savepoints() 398 cleaned_data 321 clear() 155, 379, 570 clear_expired() 528 ClearableFileInput 482 clearsessions 528 close() 552, 570 closed 219 Coalesce 193 Collate 195 comment 283 commit() 398 CommonPasswordValidator() 502 compilemessages 585 Concat 187 condition() 572 conditional_escape() 469 CONN_HEALTH_CHECK 81 CONN_MAX_AGE 81 connect() 538 CONTAINED_BY 422 CONTAINS 422 contains() 168 content 218 content_params 216 content_type 216, 239 ContentType 380 context_data 222 context_object_name 241, 245 context_processors 271 ContextMixin 238 Cookie 521 ◊ подписанный 523 ◊ сессии 524 ◊ языковый 587 COOKIES 521 Corr 436 CORS_ALLOW_ALL_ORIGINS 629 CORS_ALLOW_METHODS 630 CORS_ALLOWED_ORIGIN_REGEXES 630


782 Предметный указатель CORS_ALLOWED_ORIGINS 630 CORS_ORIGIN_ALLOW_ALL 630 CORS_ORIGIN_REGEX_WHITELIST 630 CORS_ORIGIN_WHITELIST 630 CORS_URLS_REGEX 630 Cos 191 Cot 191 count 300 Count 184 count() 167 CovarPop 437 create() 146, 153, 155, 378 create_superuser() 499 create_user() 499 CreateAPIView 644 createcachetable 562 created 650 CreateExtension 424 createsuperuser 346 CreateView 252 CryptoExtension 425 CSRF_COOKIE_SECURE 671 csrf_token 281 CULL_FREQUENCY 561 current_app 224 cut 287 cycle 279 cycle_key() 528 D data 337, 639 DATA_UPLOAD_MAX_MEMORY_SIZE 415 DATA_UPLOAD_MAX_NUMBER_FIELDS 415 DATABASE_ROUTERS 83, 98 DATABASES 80 date 284 date_field 256 DATE_FORMAT 86 date_hierarchy 612 DATE_INPUT_FORMATS 87 date_joined 361 date_list_period 256 DateDetailView 264 DateField 105, 310 datefmt 651 DateInput 315 DateMixin 256 DateRange 427 DateRangeField 417, 447 dates() 200 DATETIME_FORMAT 87 DATETIME_INPUT_FORMATS 87 DateTimeField 105, 311 DateTimeInput 316 DateTimeRangeField 417, 447 datetimes() 201 DateTimeTZRange 427 day 263 day_format 263 DayArchiveView 263 DayMixin 263 db_for_read() 96 db_for_write() 96 debug 271, 283 DEBUG 79 debug() 531 DECIMAL_SEPARATOR 86 DecimalField 105, 310 DecimalRangeField 417, 447 DecimalValidator 130 decr() 569 decr_version() 570 default 90, 286 default_auto_field 90 DEFAULT_AUTO_FIELD 82 DEFAULT_CHARSET 80 DEFAULT_FILE_STORAGE 477 DEFAULT_FROM_EMAIL 548 default_if_none 286 DEFAULT_INDEX_TABLESPACE 83 DEFAULT_MESSAGE_LEVELS 532 DEFAULT_PASSWORD_LIST_PATH 502 DEFAULT_TABLESPACE 82 DEFAULT_USER_ATTRIBUTES 502 DefaultRouter 645 defaults 651 defer() 376 Deferrable 123 Degrees 191 DELETE 638 delete() 126, 151, 159, 253, 485, 569 delete_cookie() 523 delete_many() 569 delete_test_cookie() 527 deleted_forms 402 deleted_objects 335 DeleteView 254 deletion_widget 405 DeletionMixin 253 desc() 180 DestroyAPIView 644 DetailView 242


Предметный указатель 783 dictsort 289 dictsortreversed 289 DIRS 271 disable_existing_loggers 650 DISABLE_SERVER_SIDE_CURSORS 82 disabled 309 disconnect() 540 dispatch() 236 display() 126, 604, 605, 613 distinct() 177 divisibleby 288 django 659 Django REST framework 628 Django Simple Captcha 410 django.contrib.admin 83 django.contrib.auth 83 django.contrib.auth.context_processors.auth 273 django.contrib.auth.middleware. AuthenticationMiddleware 84 django.contrib.contenttypes 83 django.contrib.messages 83 django.contrib.messages.context_processors. messages 273 django.contrib.messages.middleware. MessageMiddleware 85 django.contrib.messages.storage.cookie. CookieStorage 529 django.contrib.messages.storage.fallback. FallbackStorage 529 django.contrib.messages.storage.session. SessionStorage 529 django.contrib.postgres 416 django.contrib.sessions 83 django.contrib.sessions.backends.cache 525 django.contrib.sessions.backends.cached_db 525 django.contrib.sessions.backends.db 524 django.contrib.sessions.backends.file 524 django.contrib.sessions.backends.signed_cookies 525 django.contrib.sessions.middleware. SessionMiddleware 84 django.contrib.sessions.serializers.JSONSerializer 525 django.contrib.sessions.serializers.PickleSerializer 525 django.contrib.staticfiles 84, 476 django.core.cache.backends.db.DatabaseCache 558 django.core.cache.backends.dummy.DummyCache 559 django.core.cache.backends. filebased.FileBasedCache 558 django.core.cache.backends.locmem. LocMemCache 558 django.core.cache.backends.memcached. PyMemcacheCache 558 django.core.cache.backends.redis.RedisCache 558 django.core.mail.backends.console.EmailBackend 547 django.core.mail.backends.dummy.EmailBackend 547 django.core.mail.backends.filebased.EmailBackend 547 django.core.mail.backends.locmem.EmailBackend 547 django.core.mail.backends.smtp.EmailBackend 547 django.db.backends 659 django.db.backends.schema 659 django.forms 406 django.forms.renderers.TemplatesSetting 406 django.middleware.cache. FetchFromCacheMiddleware 512 django.middleware.cache. UpdateCacheMiddleware 512 django.middleware.clickjacking. XFrameOptionsMiddleware 85 django.middleware.common.CommonMiddleware 84 django.middleware.csrf.CsrfViewMiddleware 84 django.middleware.gzip.GZipMiddleware 511 django.middleware.http.ConditionalGetMiddleware 512, 570 django.middleware.locale.LocaleMiddleware 512, 586 django.middleware.security.SecurityMiddleware 84 django.request 659 django.security.<класс исключения> 659 django.security.csrf 659 django.server 659 django.template 659 django.template.backends.django.DjangoTemplates 270 django.template.backends.jinja2.Jinja2 270 django.template.context_processors.csrf 273 django.template.context_processors.debug 273 django.template.context_processors.i18n 273 django.template.context_processors.media 273 django.template.context_processors.request 273 django.template.context_processors.static 273, 297 django.template.context_processors.tz 273 django.template.loaders.app_directories.Loader 274


784 Предметный указатель django.template.loaders.cached.Loader 274 django.template.loaders.filesystem.Loader 273 django.template.loaders.locmem.Loader 274 django.utils.log.AdminEmailHandler() 657 django-admin 28 django-bootstrap5 459 django-cleanup 489 django-cors-headers 629 django-localflavor 449 DjangoModelPermissions 647 DjangoModelPermissionsOrAnonReadOnly 647 django-precise-bbcode 452 DoesNotExist 165 DOS 415 dumps() 535 duration 659 DurationField 106, 311 E earliest() 165 easy-thumbnails 490 elif 278 ELLIPSIS 300 else 278 email 361 EMAIL_BACKEND 547 EMAIL_FILE_PATH 549 EMAIL_HOST 548 EMAIL_HOST_PASSWORD 548 EMAIL_HOST_USER 548 EMAIL_PORT 548 EMAIL_SSL_CERTFILE 548 EMAIL_SSL_KEYFILE 548 EMAIL_SUBJECT_PREFIX 555 email_template_name 356 EMAIL_TIMEOUT 548 EMAIL_USE_LOCALTIME 549 EMAIL_USE_SSL 548 EMAIL_USE_TLS 548 email_user() 554 EmailField 104, 309 EmailInput 315 EmailMessage 549 EmailMultiAlternatives 552 EmailValidator 129 empty_value_display 613 EmptyFieldListFilter 612 EmptyPage 300 encoding 216 end_index() 302 endautoescape 281 endblock 292 endblocktranslate 578 endcomment 283 endfilter 281 endfor 277 endif 278 endifchanged 278 endlanguage 593 endlocalize 595 endlocaltime 599 endspaceless 282 endtimezone 599 endverbatim 282 endwith 280 ENGINE 80 EQUAL 422 error() 531 error_css_class 403, 466 error_messages 309 errors 319, 325 escape 290 escape() 469 escapejs 290 etag() 572 exc_info 650 exclude 615 exclude() 169 ExclusionConstraint 422 Exists 197 exists() 166 Exp 191 ExpressionWrapper 186 extends 293 extra 623 extra_context 238, 351, 353–356, 358, 359 extra_email_context 356 extra_kwargs 230 extra_tags 532 Extract 192 ExtractDay 192 ExtractHour 192 ExtractIsoWeekDay 192 ExtractIsoYear 192 ExtractMinute 192 ExtractMonth 192 ExtractQuarter 192 ExtractSecond 192 ExtractWeek 192 ExtractWeekDay 192 ExtractYear 192


Предметный указатель 785 F F 175 field_order 403 FieldFile 484 fields 251, 614 fieldsets 616 file_charset 271 FILE_CHARSET 80 FILE_UPLOAD_DIRECTORY_PERMISSIONS 477 FILE_UPLOAD_HANDLERS 477 FILE_UPLOAD_MAX_MEMORY_SIZE 477 FILE_UPLOAD_PERMISSIONS 477 FILE_UPLOAD_TEMP_DIR 477 FileExtensionValidator 481 FileField 479, 481 FileInput 482 filename 650 FilePathField 485, 486 FileResponse 227 FILES 215 filesizeformat 288 FileSystemFinder 296 filter 281 filter() 169, 467 filter_horizontal 618 filter_vertical 618 filters 649, 654, 660 first 288 first() 165 FIRST_DAY_OF_WEEK 88 first_name 361 firstof 280 fk_name 623 FloatField 105, 310 floatformat 287 Floor 190 flush 143 flush() 219, 527 for 277 force_escape 290 ForeignKey 110 form 617, 624 Form 400 form_class 248, 254, 354, 356, 358 form_invalid() 249 FORM_RENDERER 406 form_valid() 249 format 651 format_lazy() 593 formatter 654 formatters 650 formfield_overrides 619 FormMixin 247 FormParser 641 forms 341 formset 624 formset_factory() 401 FormView 249 from_email 356 from_queryset() 392 full_clean() 159 FULLY_GT 422 FULLY_LT 422 funcName 650 funс 230 G generic_inlineformset_factory() 383 GenericForeignKey 380 GenericIPAddressField 106, 312 GenericRelation 382 GET 215, 637 get() 167, 219, 568 get_<имя вторичной модели>_order() 156 get_<имя поля>_display() 162 get_absolute_url() 125 get_all_permissions() 362 get_allow_empty() 245 get_allow_future() 256 get_autocommit() 398 get_autocomplete_fields() 618 get_available_languages 588 get_connection() 551 get_context_data() 238, 241, 245 get_context_object_name() 241, 245 get_current_language 588 get_current_language_bidi 588 get_current_timezone 599 get_current_timezone() 148, 600 get_current_timezone_name() 600 get_date_field() 256 get_date_list() 257 get_date_list_period() 257 get_dated_items() 257 get_dated_queryset() 257 get_day() 263 get_day_format() 263 get_default_redirect_url() 350, 353 get_default_timezone() 148 get_deletion_widget() 405 get_digit 291


786 Предметный указатель get_elided_page_range() 300 get_exclude() 615 get_expire_at_browser_close() 528 get_expiry_age() 527 get_expiry_date() 528 get_extra() 623 get_fields() 614 get_fieldsets() 616 get_form() 248, 617 get_form_class() 248 get_form_kwargs() 248 get_formset() 624 get_full_name() 363 get_full_path() 217 get_full_path_info() 217 get_group_permissions() 362 get_help_text() 503 get_host() 217 get_initial() 248 get_inlines() 625 get_language() 589 get_language_bidi() 589 get_language_info 588 get_list_display() 606 get_list_display_links() 606 get_list_filter() 612 get_list_or_404() 229 get_list_select_related() 607 get_login_url() 367 get_make_object_list() 259 get_many() 569 get_max_age() 575 get_max_num() 624 get_messages() 532 get_min_num() 623 get_month() 260 get_month_format() 260 get_next_by_<имя поля>() 167 get_next_day() 263 get_next_in_order() 168 get_next_month() 260 get_next_week() 262 get_next_year() 259 get_object() 241 get_object_or_404() 229 get_or_create() 146 get_or_set() 568 get_ordering() 244, 608 get_ordering_widget() 405 get_page() 300 get_paginate_by() 244 get_paginate_orphans() 244 get_paginator() 245, 613 get_parser() 454 get_password_validators() 504 get_permission_denied_message() 367 get_permission_required() 369 get_port() 217 get_prepopulated_fields() 619 get_previous_by_<имя поля>() 167 get_previous_day() 263 get_previous_in_order() 168 get_previous_month() 260 get_previous_week() 262 get_previous_year() 259 get_queryset() 240, 244, 388, 608 get_readonly_fields() 615 get_redirect_field_name() 368 get_redirect_url() 266 get_search_fields() 609 get_short_name() 363 get_signed_cookie() 523 get_slug_field() 240 get_sortable_by() 608 get_static_prefix 297 get_success_message() 531 get_success_url() 253 get_template() 220 get_template_names() 238, 242, 246 get_user() 360 get_user_permissions() 362 get_username() 363 get_week() 262 get_week_format() 261 get_year() 259 get_year_format() 259 getlist() 484 gettext() 579 gettext_lazy() 580 gettext_noop() 581 GinIndex 420 GistIndex 419 got_request_exception 544 Greatest 194 Group 361 groups 361 gzip_page() 231 H handle_no_permission() 368 handlers 649, 660 has_changed() 322 has_header() 219


Предметный указатель 787 has_key() 569 has_module_perms() 362 has_next() 302 has_other_pages() 302 has_perm() 361 has_perms() 362 has_previous() 302 has_usable_password() 500 HashIndex 420 headers 216 height 484 help_text 308, 325 hidden_fields() 326 HiddenInput 315 horizontal_label_class 466 HOST 81 HStoreExtension 425 HStoreField 418, 429, 433, 448 html_email_template_name 356 HTTP_201_CREATED 639 HTTP_204_NO_CONTENT 639 HTTP_400_BAD_REQUEST 639 http_method_names 236 http_method_not_allowed() 237 Http404 225 HttpRequest 212, 215 HttpResponse 212, 218 HttpResponseBadRequest 225 HttpResponseForbidden 225 HttpResponseGone 225 HttpResponseNotAllowed 225 HttpResponseNotFound 224 HttpResponseNotModified 226 HttpResponsePermanentRedirect 223 HttpResponseRedirect 222 HttpResponseServerError 226 I i18n_patterns() 590 IBANField 450 IBANFormField 451 if 278 ifchanged 278 ImageClearableFileInput 496 ImageField 480, 481 ImageFieldFile 484 ImproperlyConfigured 269 in_bulk() 201 include 294 include() 205, 209 inclusion_tag() 472 incr() 568 incr_version() 570 Index 119, 419 info() 531 initial 248, 308 inlineformset_factory() 342 inlines 615, 624 inspectdb 136 INSTALLED_APPS 83, 90 int_list_validator() 131 IntegerChoices 109 IntegerField 105, 310 IntegerRangeField 416, 447 IntegrityError 101, 112 intersection() 198 InvalidCacheBackendError 567 iriencode 291 is_active 361 is_anonymous 361 is_authenticated 361 is_bound() 319 is_hidden 326 is_multipart() 324 is_secure() 217 is_staff 361 is_superuser 361 is_valid() 319 IsAdminUser 647 IsAuthenticated 647 IsAuthenticatedOrReadOnly 647 iscoroutinefunction() 517 isempty 428 iterator() 178 J join 288 json_script 292 JSONBAgg 436 JSONField 106, 313 JSONObject 194 JSONParser 641 JsonResponse 227 K KEY_FUNCTION 561 KEY_PREFIX 561 KeysValidator 426 kwargs 230, 236


788 Предметный указатель L label 90, 124, 308, 325 label_lower 124 label_suffix 308 label_tag 325 language 593 language_bidi 589 LANGUAGE_CODE 85 LANGUAGE_COOKIE_AGE 594 LANGUAGE_COOKIE_DOMAIN 594 LANGUAGE_COOKIE_HTTPONLY 594 LANGUAGE_COOKIE_NAME 594 LANGUAGE_COOKIE_PATH 594 LANGUAGE_COOKIE_SAMESITE 594 LANGUAGE_COOKIE_SECURE 594 language_name 589 language_name_translated 589 LANGUAGES 594 last 288 last() 165 last_login 361 last_modified() 572 last_name 361 latest() 166 Least 194 Left 188 length 288 Length 188 length_is 288 level 532, 654, 660 level_tag 532 levelname 650 levelno 650 libraries 272 Library 467 linebreaks 290 linebreaksbr 290 lineno 650 linenumbers 291 list_display 603 list_display_links 606 list_editable 606 list_filter 610 list_max_show_all 612 list_per_page 612 list_select_related 607 ListAPIView 644 ListCreateAPIView 643 ListView 246 ljust 291 Ln 191 load 282 loaders 271 loads() 535 LOCALE_PATHS 582, 594 localize 595, 596 localtime 599 LOCATION 559 Log 191 loggers 649 LOGGING 649 logging.FileHandler 654 logging.handlers.RotatingFileHandler 655 logging.handlers.SMTPHandler 657 logging.handlers.TimedRotatingFileHandler 656 logging.NullHandler 658 logging.StreamHandler 654 login() 500 LOGIN_REDIRECT_URL 345 login_required() 365 login_url 367 LOGIN_URL 345 LoginRequiredMixin 368 LoginView 350 logout() 501 LOGOUT_REDIRECT_URL 346 LogoutView 352 LogRecord 650 lookups() 610 lorem 283 lower 286, 428 Lower 188 lower_inc 428 lower_inf 428 LPad 189 LTrim 188 M m2m_changed 542 mail_admins() 555 mail_managers() 555 make_list 288 make_object_list 259 makemessages 582 makemigrations 137 manage.py 28 management_form 339 Manager 146, 388 MANAGERS 555 ManyToManyField 115 mark_safe() 469 Max 185


Предметный указатель 789 MAX_ENTRIES 561 max_num 623 MaxLengthValidator 128 MaxValueValidator 130 MD5 189 MEDIA_ROOT 476 MEDIA_URL 476 MemoryFileUploadHandler 477 message 532, 650 Message 532 message() 550 message_dict 160 MESSAGE_LEVEL 529, 530 MESSAGE_STORAGE 529 MESSAGE_TAGS 529 message_user() 626 MessageFailure 530 messages 531 Meta 117, 305, 510 META 216 method 215 MIDDLEWARE 84 MiddlewareNotUsed 514 migrate 139 Migration 424 Min 185 min_num 623 MinimumLengthValidator() 502 MinLengthValidator 128 MinValueValidator 130 Mod 190 model 240, 244, 251, 622 Model 100 ModelAdmin 603 ModelChoiceField 311 ModelForm 305, 325 modelform_factory() 303 ModelFormMixin 251 modelformset_factory() 330 ModelMultipleChoiceField 311 ModelSerializer 631 ModelViewSet 645 module 650 month 260 MONTH_DAY_FORMAT 87 month_format 260 MonthArchiveView 260 MonthMixin 260 msecs 650 MultiPartParser 641 multiple_chunks() 487 MultipleChoiceField 312 MultipleObjectMixin 243 MultipleObjectsReturned 147, 167 MultipleObjectTemplateResponseMixin 246 N name 89, 484, 651 NAME 81, 271 namespace 230 never_cache() 574 new_objects 335 next_page 350, 353 next_page_number() 302 ng 756 ngettext() 580 ngettext_lazy() 581 no_append_slash() 231 non_atomic_requests() 395 NON_FIELD_ERRORS 135, 319 non_field_errors() 325 non_form_errors() 339 NOT_EQUAL 422 NOT_LT 422 NOT-GT 423 NotSupportedError 157 now 281 Now 193 now() 148 npgettext() 581 npgettext_lazy() 581 NullBooleanField 104, 310 NullBooleanSelect 317 NullIf 195 num_pages 300 number 302 NUMBER_GROUPING 86 NumberInput 315 NumericRange 427 O object_list 302 objects 146, 164 on_commit() 399 OneToOneField 114 only() 376 OpClass 421 open() 552 operations 424 optimizemigration 142 option_template_name 410 Options 124


790 Предметный указатель OPTIONS 82, 271, 561 options() 237 Ord 189 order_by() 179 ordered_forms 402 ordering 244, 608 ordering_widget 405 OuterRef 197 OVERLAPS 422 P Page 302 page() 300 page_kwarg 244 page_range 300 PageNotAnInteger 300 paginate_by 244 paginate_orphans 244 paginate_queryset() 245 paginator 302, 613 Paginator 299 paginator_class 245 parameter_name 610 params 659 password 361 PASSWORD 81 password_changed() 504 PASSWORD_RESET_TIMEOUT 346 PASSWORD_RESET_TIMEOUT_DAYS 346 password_validators_help_texts() 504 password_validators_help_texts_html() 504 PasswordChangeDoneView 355 PasswordChangeForm 354 PasswordChangeView 354 PasswordInput 315 PasswordResetCompleteView 359 PasswordResetConfirmView 358 PasswordResetDoneView 357 PasswordResetForm 356 PasswordResetTokenGenerator 356 PasswordResetView 355 PATCH 638 patch_cache_control() 574 patch_response_headers() 574 patch_vary_headers() 574 path 90, 215 path() 205, 208 path_info 215 pathname 650 pattern_name 266 permanent 266 Permission 361 permission_classes 648 permission_classes() 648 permission_denied_message 367 permission_required 369 permission_required() 366 PermissionDenied 225 PermissionRequiredMixin 368 perms 369 pgettext() 580 pgettext_lazy() 580 phone2numeric 292 Pi 191 pk 161 pk_url_kwarg 240 plural 579 pluralize 287 PORT 81 PositiveBigIntegerField 105 PositiveIntegerField 105 PositiveSmallIntegerField 105 POST 215, 638 post_delete 542 post_init 541 post_reset_login 358 post_reset_login_backend 358 post_save 541 Power 190 pprint 292 pre_delete 542 pre_init 540 pre_save 541 Prefetch 375 prefetch_related() 374 prefix 248 prepopulated_fields 619 preserve_filters 612 previous_page_number() 302 process 650 process_exception() 515 process_template_response() 515 process_view() 515 ProcessFormView 249 processName 651 ProhibitNullCharactersValidator 129 propagate 660 ProtectedError 111 PUT 638 Python Social Auth 505


Предметный указатель 791 Q Q 176 query_pk_and_slug 240 query_string 266 queryset 240, 244, 643, 645 QuerySet 164, 391 queryset() 610 R Radians 191 radio_fields 617 RadioSelect 317 RAISE_ERROR 523 raise_exception 368 random 288 Random 192 RandomUUID 438 RangeMaxValueValidator 425 RangeMinValueValidator 425 RangeOperators 422 RangeWidget 449 raw_id_fields 619 re_path() 210 read() 487 readonly_fields 615 ReadOnlyModelViewSet 646 ready() 539 reason_phrase 218, 226 receiver() 539 recipients() 550 redirect() 228 redirect_authenticated_user 351 redirect_field_name 350, 353, 368 redirect_to_login() 365 RedirectView 265 RegexField 309 RegexValidator 128 register() 621, 645 RegrAvgX 437 RegrAvgY 437 RegrCount 437 RegrIntercept 437 regroup 280 RegrR2 437 RegrSlope 437 RegrSXX 437 RegrSXY 437 RegrSYY 438 RelatedManager 152 RelationOnlyFieldListFilter 611 relativeCreated 650 remove() 155, 379 remove_stale_contenttypes 383 render() 220, 228, 454 render_to_response() 239 render_to_string() 221 rendered 455 Repeat 189 Replace 188 request 236, 659 request_finished 544 request_started 544 require_get() 231 require_http_methods() 231 require_post() 231 require_safe() 231 required 308 required_css_class 403, 466 RequireDebugFalse 652 RequireDebugTrue 652 reset_url_token 359 resetcycle 280 resolve() 230 resolver_match 217 Resolver404 230 ResolverMatch 230 Response 632 response_class 239 REST 628 RestrictedError 111 RetrieveAPIView 644 RetrieveDestroyAPIView 643 RetrieveUpdateAPIView 643 RetrieveUpdateDestroyAPIView 643 Reverse 189 reverse() 180, 223 reverse_lazy() 224 reverse_ordering() 180 Right 188 rjust 291 rollback() 398 ROOT_URLCONF 80, 204 Round 190 route 230 RPad 189 RTrim 188 RUAlienPassportNumberField 451 RUCountySelect 451 runserver 91 RUPassportNumberField 451 RUPostalCodeField 451 RURegionSelect 451


792 Предметный указатель S safe 290 SafeMIMEText 550 safeseq 290 SafeText 469 save() 125, 149, 320 save_as 620 save_as_continue 620 save_m2m() 320 save_on_top 620 savepoint() 398 savepoint_commit() 398 savepoint_rollback() 398 scheme 215 search_fields 608 search_help_text 609 SearchHeadline 443 SearchQuery 440 SearchRank 442 SearchVector 440 SECRET_KEY 80 SECURE_BROWSER_XSS_FILTER 672 SECURE_CONTENT_TYPE_NOSNIFF 669 SECURE_CROSS_ORIGIN_OPENER_POLICY 671 SECURE_HSTS_INCLUDE_SUBDOMAINS 669 SECURE_HSTS_PRELOAD 669 SECURE_HSTS_SECONDS 668 SECURE_PROXY_SSL_HEADER 671 SECURE_REDIRECT_EXEMPT 668 SECURE_REFERRER_POLICY 670 SECURE_SSL_HOST 668 SECURE_SSL_REDIRECT 668 Select 316 select_for_update() 396 select_related() 373 select_template() 220 SelectDateWidget 315 SelectMultiple 317 send() 545, 550 send_mail() 553 send_mass_mail() 554 send_messages() 552 send_robust() 546 sendtestemail 556 serializer_class 643, 645 serve() 478, 673 SERVER_EMAIL 555 session 526 SESSION_CACHE_ALIAS 526 SESSION_COOKIE_AGE 525 SESSION_COOKIE_DOMAIN 525 SESSION_COOKIE_HTTPONLY 526 SESSION_COOKIE_NAME 525 SESSION_COOKIE_PATH 525 SESSION_COOKIE_SAMESITE 526 SESSION_COOKIE_SECURE 526 SESSION_ENGINE 524 SESSION_EXPIRE_AT_BROWSER_CLOSE 525 SESSION_FILE_PATH 526 SESSION_SAVE_EVERY_REQUEST 525 SESSION_SERIALIZER 525 set() 155, 379, 567 set_<имя вторичной модели>_order() 156 set_autocommit() 398 set_cookie() 521 set_expiry() 527 set_many() 569 set_password() 499 set_signed_cookie() 523 set_test_cookie() 527 set_unusable_password() 500 setdefault() 219 SetPasswordForm 358 settings 88 setup() 236 SHA1 190 SHA244 190 SHA256 190 SHA384 190 SHA512 190 shell 40 SHORT_DATE_FORMAT 86 SHORT_DATETIME_FORMAT 86 short_description 127, 604, 627 show_change_link 623 show_full_result_count 609 showmigrations 141 Sign 191 sign() 533, 534 Signal 537, 545 SignatureExpired 523, 534 Signer 533 simple_tag() 470 SimpleArrayField 447 SimpleListFilter 610 Sin 191 SingleObjectMixin 240 SingleObjectTemplateResponseMixin 241 size 484 slice 288


Предметный указатель 793 slug_field 240 slug_url_kwarg 240 SlugField 104, 309 slugify 287 SmallAutoField 106 SmallIntegerField 105 SMILIES_UPLOAD_TO 459 sortable_by 608 spaceless 282 SpGistIndex 420 SplitArrayField 447 SplitDateTimeField 311 SplitDateTimeWidget 316 sql 659 sqlflush 143 sqlmigrate 141 Sqrt 190 squashmigrations 142 SSL 548 stack_info 650 StackedInline 622 start_index() 302 startapp 89 startproject 79 static 297 static() 478 STATIC_ROOT 295 STATIC_URL 295 STATICFILES_DIRS 296 STATICFILES_FINDERS 296 STATICFILES_STORAGE 296 StaticFilesStorage 296 status_code 218, 226, 659 StdDev 185 streaming 219, 226 streaming_content 226 StreamingHttpResponse 226 StrIndex 188 string_if_invalid 271 StringAgg 435 stringfilter 468 stringformat 287 striptags 290 style 651 subject_template_name 355 Subquery 196 Substr 188 success() 531 success_css_class 466 success_message 531 success_url 248, 251, 253, 354, 356, 358 success_url_allowed_hosts 351, 353 SuccessMessageMixin 531 Sum 185 supports_microseconds 314 SuspiciousOperation 415, 664 sync_and_async_middleware() 517 sync_only_middleware() 517 sync_to_async() 232 SynchronousOnlyOperation 232 T TabularInline 622 tags 532 Tan 191 Template 220 template_name 222, 238, 350, 353–355, 357–359, 407, 408, 410 template_name_field 241 template_name_label 408 template_name_suffix 242, 246, 252, 254 TemplateDoesNotExist 220 TemplateResponse 221 TemplateResponseMixin 238 TEMPLATES 270 TemplateSyntaxError 220 templatetag 282 TemplateView 239 TemporaryFileUploadHandler 477 test_cookie_worked() 527 test_func() 368 Textarea 316 TextChoices 108 TextField 104 TextInput 315 THOUSAND_SEPARATOR 86 thread 651 threadName 651 through 542 thumbnail 495 THUMBNAIL_ALIASES 491 THUMBNAIL_BASEDIR 493 THUMBNAIL_CACHE_DIMENSIONS 494 thumbnail_cleanup 497 THUMBNAIL_DEFAULT_OPTIONS 493 THUMBNAIL_EXTENSION 494 THUMBNAIL_MEDIA_ROOT 493 THUMBNAIL_MEDIA_URL 493 THUMBNAIL_PREFIX 494 THUMBNAIL_PRESERVE_EXTENSIONS 494 THUMBNAIL_PROGRESSIVE 494 THUMBNAIL_QUALITY 494 THUMBNAIL_SUBDIR 494


794 Предметный указатель THUMBNAIL_TRANSPARENCY_EXTENSION 494 thumbnail_url 495 THUMBNAIL_WIDGET_OPTIONS 494 ThumbnailerField 496 ThumbnailerImageField 496 ThumbnailFile 495 time 285 TIME_FORMAT 87 TIME_INPUT_FORMATS 88 TIME_ZONE 81, 82, 85 TimeField 105, 311 TimeInput 316 TIMEOUT 561 timesince 285 TimestampSigner 534 timeuntil 286 timezone 599, 600 title 286, 610 TLS 548 TodayArchiveView 264 token_generator 356, 359 touch() 569 TransactionNow 438 translate 577 TrigramDistance 446 TrigramExtension 425 TrigramSimilarity 445 TrigramWordDistance 446 TrigramWordSimilarity 446 Trim 188 Trunc 192 truncatechars 286 truncatechars_html 286 truncatewords 287 truncatewords_html 287 TruncDate 193 TruncDay 193 TruncHour 193 TruncMinute 193 TruncMonth 193 TruncQuarter 193 TruncSecond 193 TruncTime 193 TruncWeek 193 TruncYear 193 TypedChoiceField 312 TypedMultipleChoiceField 312 U UnaccentExtension 425 union() 198 UniqueConstraint 122 unlocalize 596 unordered_list 289 unsign() 534 update() 158 update_or_create() 147 UpdateAPIView 644 UpdateView 252 UploadedFile 486 upper 286, 428 Upper 188 upper_inc 428 upper_inf 428 url 265, 277, 484 url_name 230 urlencode 290 URLField 104, 309 URLInput 315 urlize 290 urlizetrunc 290 urlpatterns 205 urls 645 URLValidator 129 URL-параметр 59, 204, 207 use_fieldset 315 USE_I18N 85 USE_L10N 86 USE_THOUSANDS_SEPARATOR 86 USE_TZ 86 user 360, 369 User 360 USER 81 user_logged_in 544 user_logged_out 544 user_login_failed 544 user_passes_test() 366 user_permissions 361 UserAttributeSimilarityValidator() 501 UserManager 499 username 361 UserPassesTestMixin 368 using() 201 utc 600 UUIDField 106, 313 Uvicorn 672 V validate 651 validate() 503 validate_comma_separated_integer_list 131 validate_email 131


Предметный указатель 795 validate_image_file_extension 481 validate_ipv4_address() 131 validate_ipv46_address() 131 validate_ipv6_address() 131 validate_password() 504 validate_slug 131 validate_unicode_slug 131 ValidationError 117, 133 validators 308 Value 176 value() 611 values() 199, 200 Variance 185 vary_on_cookie() 565 vary_on_headers() 565 verbatim 282 verbose_name 90, 624 verbose_name_plural 624 version 649 VERSION 561 View 236 view_name 230 view_on_site 620 view_on_site() 620 visible_fields() 326 W warning() 531 week 262 week_format 261 WeekArchiveView 262 WeekMixin 261 When 195 widget 308 Widget 314 width 484 widthratio 282 with 280 with_perms 363 wordcount 288 wordwrap 287 write() 219 writelines() 219 X X_FRAME_OPTIONS 671 Y year 259 year_format 258 YEAR_MONTH_FORMAT 87 YearArchiveView 259 YearMixin 258 yesno 286 А Авторизация 345 Агрегатная функция 181 Агрегатное вычисление 181 Административный веб-сайт 47, 601 Аутентификация 344 ◊ основная 647 Б Библиотека тегов 272 ◊ встраиваемая 272 ◊ загружаемая 272 Блок 69, 292 Бэкенд 498, 628 В Валидатор 127 Валидация 127 ◊ модели 134 ◊ формы 328 Веб-представление JSON 632 Веб-сервер отладочный 29, 91 Веб-служба 628 Веб-страница стартовая 756, 757 Веб-фреймворк 19 Включение шаблонов 294 Вложенный запрос 196 Внедрение зависимостей 763 Восстановление пароля 345 Временнáя отметка 37


796 Предметный указатель Всплывающее сообщение 528 ◊ уровень 529 Вход 344 Вывод ◊ быстрый 323 ◊ расширенный 325 Выполнение миграции 137 Выпуск 762 Выражение ◊ сравнение 176 ◊ функциональное 175 Выход 345 Г Генератор маршрутов 645 Гость 345 Группа 349 Д Действие 625 Директива 44, 275, 768 Диспетчер ◊ данных 95 ◊ записей 42, 146, 388 ◊ обратной связи 152, 390 Диспетчеризация данных 94, 95 Ж Журналирование 649 З Загрузчик шаблонов 271, 273 Значение ◊ внешнее 107 ◊ внутреннее 107 И Интернет-адрес модели 124 Интерфейс 766 К Каскадное удаление 111 Кеш сервера 557 Кеширование 557 ◊ на стороне клиента 557 ◊ на стороне сервера 557 Класс ◊ базовый 236 ◊ конфигурационный 89 ◊ обобщенный 240 Ключ 38 ◊ конечный 566 Кнопка-гамбургер 685 Комментарий 283 Компонент 755 ◊ приложения 755 Консоль Django 40 Контекст шаблона 46, 220, 270 Контроллер 32, 212 ◊ класс 32, 235 ◊ функция 32, 212 Л Локализация 576 ◊ временных зон 576 ◊ строк 576 ◊ форматов 576 М Маршрут 33, 203 ◊ именованный 64, 208 ◊ корневой 205, 206 ◊ параметризованный 60, 205 ◊ совпавший 34, 203 Маршрутизатор 33, 203, 756 Маршрутизация 203 Меню навигации 685 Метаимпорт 756 Метаконтроллер 644 Метамодуль 755 ◊ приложения 756 Метаэкспорт 756 Миграция 38, 137 ◊ выполнение 39 ◊ начальная 139 ◊ слияние 142 Миниатюра 490 Модель 36, 100 ◊ абстрактная 386 ◊ ведомая 115 ◊ ведущая 115 ◊ связующая 116, 377 Модификатор 169 Модуль ◊ локализации 576


Предметный указатель 797 ◊ расширения 72 ◊ языковый 576 Н Набор ◊ записей 42, 391 ◊ полей 616  основной 616 ◊ форм  встроенный 342  не связанный с моделью 401  связанный с моделью 330 Наследование ◊ многотабличное 384 ◊ прямое 384 ◊ шаблонов 69, 292 О Обещание 764 Обработчик 537, 649 ◊ выгрузки 477 ◊ контекста 271, 273, 519 Обратное разрешение 64, 208, 223, 277 Объявление ◊ быстрое 305 ◊ полное 306 Операционное выражение 421 Отмена миграций 144 Отправитель 537 П Пагинатор 299 Пакет ◊ конфигурации 29 ◊ приложения 30 Папка проекта 28 Парсер 641 Перенаправление 222 План миграций 140 Поиск 167 Поле ◊ автоинкрементное 106 ◊ внешнего ключа 56 ◊ вычисляемое 186 ◊ диапазона 416, 427, 430 ◊ ключевое 38, 103 ◊ обратной связи 382 ◊ полиморфной связи 380 ◊ словаря 418, 429, 448 ◊ со списком 107, 149, 162, 312 ◊ списка 417, 429, 447 ◊ списка разделенное 447 ◊ строковое 103 ◊ текстовое 104 ◊ уникальное 101 ◊ функциональное 126 Пользователь 344 ◊ активный 348 ◊ зарегистрированный 344 ◊ персонал 348 Посредник 84, 511 Потоковый ответ 226 Права 344 Пресет 491 Привилегии 344 Приложение 30, 83, 89, 755 ◊ имя 208 ◊ псевдоним 209 Примесь 235 Программное разрешение 230 Проект 28, 79 Прокси-модель 387 Псевдоконтейнер 773 Путь 33 ◊ шаблонный 33, 203 Р Разграничение доступа 344 Расширение PostgreSQL 424 Регистратор 649 Регистрация 344 Редактор 53, 603 ◊ встроенный 622 Режим ◊ отладочный 79 ◊ эксплуатационный 79 Рендеринг 46, 220, 270 С Свойство ◊ закрытое 763 ◊ защищенное 766 ◊ общедоступное 761 Связывание данных ◊ двустороннее 773 ◊ одностороннее 768


798 Предметный указатель Связь ◊ многие-со-многими 115 ◊ необязательная 114 ◊ обобщенная 380 ◊ один-с-одним 114 ◊ один-со-многими 57, 110 ◊ полиморфная 380 ◊ рекурсивная 111 ◊ с дополнительными данными 377 Сериализатор 631 Сессия 524 Сигнал 537 Слаг 104 Служба 755 Сокращение 46, 228 Соль 523 Список маршрутов 33, 203 ◊ вложенный 35, 203 ◊ уровня приложения 35, 204 ◊ уровня проекта 35, 204 Список пользователей 344 Статический файл 72, 295 Строка локализуемая 576 Суперпользователь 48, 346 Т Таблица ◊ обслуживаемая 36, 100 ◊ связующая 115 Тег 44, 276 ◊ закрывающий 276 ◊ компонента 755 ◊ одинарный 276 ◊ открывающий 276 ◊ парный 276 ◊ содержимое 276 ◊ шаблонный 472 У Условное выражение СУБД 195 Ф Фабрика классов 305 Файловое хранилище 477 Фильтр 44, 283, 649 Фильтрация 168 ◊ полнотекстовая 439 Форма 65, 303 ◊ не связанная с моделью 400 ◊ связанная с моделью 65, 303 Форматировщик 650 Фреймворк 19 Фронтенд 628 Функция СУБД 187 Ч Чанк 178 Ш Шаблон 44, 270 ◊ переопределение 474 Шаблонизатор 44, 270 Э Экономная выборка записей 178 Я Язык ◊ исходный 576 ◊ текущий 586 Языковая редакция 589


Дронов В. Laravel 9. Быстрая разработка веб-сайтов на PHP Отдел оптовых поставок: e-mail: opt@bhv.ru • Модели, контроллеры и шаблоны • Маршрутизация • Разграничение доступа • CAPTCHA • BBCode • Аутентификация через социальные сети • Обработка событий • Оповещения • Отложенные задания • Планировщик • Локализация веб-сайтов • Разработка веб-служб REST • Публикация сайта Книга представляет собой полное описание фреймворка Laravel 9 для быстрой разработки сайтов на языке PHP. Дан краткий вводный курс для начинающих, в котором описывается разработка простого учебного сайта — электронной доски объявлений. Описаны базовые инструменты Laravel: миграции, модели, маршруты, контроллеры, шаблоны, средства обработки пользовательского ввода и сохранения выгруженных файлов, валидаторы, шаблоны, пагинаторы и инструменты разграничения доступа. Рассказано о более развитых средствах: внедрении зависимостей, провайдерах, посредниках, событиях и их обработке, отправке электронной почты, оповещениях, очередях и отложенных заданиях, встроенном планировщике, инструментах кеширования, локализации сайтов и расширении возможностей встроенной утилиты artisan. Описаны дополнительные библиотеки для обработки BBCodeтегов и CAPTCHA, вывода графических миниатюр, аутентификации через социальные сети. Рассмотрено программирование веб-служб REST, вещание по протоколу WebSocket и публикация сайта. Электронный архив на сайте издательства содержит исходный код описанного в книге сайта. Дронов Владимир Александрович, профессиональный программист, писатель и журналист, работает с компьютерами с 1987 года. Автор около 50 популярных компьютерных книг, в том числе «Django 3.0. Практика создания веб-сайтов на Python», «React 17. Разработка вебприложений на JavaScript», «Laravel 8. Быстрая разработка веб-сайтов на PHP» и многочисленных книг о языках Python, HTML, CSS, JavaScript и PHP. Его статьи публиковались в журналах «Мир ПК» и «ИнтерФейс» (Израиль) и на интернет-порталах IZ City и TheVista.ru. www.bhv.ru


Click to View FlipBook Version