{"id":53653,"date":"2019-12-07T00:00:00","date_gmt":"2019-12-06T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/vypusk-web-frejmvorka-django-3-0"},"modified":"2020-02-18T14:01:35","modified_gmt":"2020-02-18T11:01:35","slug":"vypusk-web-frejmvorka-django-3-0","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-web-frejmvorka-django-3-0","title":{"rendered":"Django 3.0 veebiraamistiku v\u00e4ljaanne","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.djangoproject.com\/weblog\/2019\/dec\/02\/django-3-released\/\">Toimus<\/a><\/noindex>  web-raamistiku v\u00e4ljaanne <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.djangoproject.com\/en\/3.0\/releases\/3.0\/\">Django 3.0<\/a><\/noindex>, mis on kirjutatud Python keeles ja on m\u00f5eldud veebirakenduste arendamiseks. Django 3.0 haru kuulub tavaliste toetust\u00e4htajaga versioonide kategooriasse ja selle uuendamine j\u00e4tkub kuni aprillini 2021. LTS-haru 2.22 toetatakse kuni aprillini 2022, samas kui haru 1.11 toetamine l\u00f5peb aprillis 2020. Haru 2.1 toetamine on l\u00f5petatud. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.djangoproject.com\/download\/#supported-versions\">saaksid<\/a><\/noindex> toetab as\u00fcnkroonset t\u00f6\u00f6tamist ASGI-rakenduste vormis. Rakendusliides <\/p>\n<p>Peamised <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.djangoproject.com\/en\/3.0\/releases\/3.0\/\">parandused<\/a><\/noindex>: <\/p>\n<ul>\n<li class=\"l\"> <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.djangoproject.com\/en\/3.0\/howto\/deployment\/asgi\/\">Pakkuv<\/a><\/noindex> (Asynchronous Server Gateway Interface) on loodud WSGI asendamiseks, keskendudes serverite, raamistikude ja rakenduste vahekorra tagamisele, mis toetavad as\u00fcnkroonset t\u00f6\u00f6tamist. WSGI-re\u017eiimiga k\u00e4ivitamine on endiselt toetatud, kuid as\u00fcnkroonse re\u017eiimiga seotud koodid aktiveeritakse ainult ASGI-p\u00f5histes keskkondades. <noindex><a rel=\"nofollow\" href=\"https:\/\/asgi.readthedocs.io\/\">ASGI<\/a><\/noindex> As\u00fcnkroonse re\u017eiimi jaoks on rakendatud eraldi s\u00fcndmuste t\u00f6\u00f6tlemise ts\u00fckkel (event loop), mille k\u00e4igus ei tohi kutsuda v\u00e4ljakutseid, mis on m\u00e4rgitud kui \u201easync unsafe\u201c. Sellised koodid, nagu andmebaasi toimingud (ORM), mida ei saa kasutada as\u00fcnkroonses kontekstis (sellisel juhul tuleb t\u00f5rge SynchronousOnlyOperation), tuleb suunata eraldi s\u00fcnkroonsesse haru.\n<p>As\u00fcnkroonses re\u017eiimis on rakendatud eraldi s\u00fcndmuste t\u00f6\u00f6tlemise ts\u00fckkel (event loop), kus ei tohi kutsuda \u00fcles koodi, mis on m\u00e4rgitud kui &#171;async unsafe&#187;. Sellise koodi all m\u00f5istetakse n\u00e4iteks andmebaasi operatsioonid (ORM), mida ei saa kasutada as\u00fcnkroonses kontekstis (selle eest antakse viga SynchronousOnlyOperation) ja need tuleks viia eraldi s\u00fcnkrontoimingusse.<\/p>\n<li class=\"l\"> tekstiliste ja t\u00e4isarvuliste v\u00e4ljade m\u00e4\u00e4ratlemiseks mudelis, n\u00e4iteks vajaduse korral lugemiseks m\u00f5eldud siltide komplektide salvestamiseks, mis muudetakse teatud atribuutideks: <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.djangoproject.com\/en\/3.0\/ref\/models\/fields\/#field-choices-enum-types\">kasutama<\/a><\/noindex> class YearInSchool(models.TextChoices):\n<p>   FRESHMAN = 'FR', _('Esimese aasta \u00fcli\u00f5pilane')<br \/>\n        FRESHMAN = &#8216;FR&#8217;, _(&#8216;Esimene aasta&#8217;)<br \/>\n        SOPHOMORE = &#8216;SO&#8217;, _(&#8216;Teine aasta&#8217;)<br \/>\n        JUNIOR = &#8216;JR&#8217;, _(&#8216;Kolmas aasta&#8217;)<br \/>\n        SENIOR = &#8216;SR&#8217;, _(&#8216;Neljas aasta&#8217;)<br \/>\n        GRADUATE = &#8216;GR&#8217;, _(&#8216;L\u00f5petaja&#8217;)<\/p>\n<li class=\"l\"> BooleanField <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.djangoproject.com\/en\/3.0\/ref\/models\/fields\/#django.db.models.BooleanField\">, otse QuerySet filtrites ilma nende eelneva annotatsioonita, enne nende rakendamist annotatsioonide filtreerimiseks.<\/a><\/noindex>Pakutakse ametlikku tuge MariaDB 10.1 ja uuematele v\u00e4ljaannetele.\n<li class=\"l\"> PostgreSQL jaoks on rakendatud klass\n<li class=\"l\"> ExclusionConstraint <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.djangoproject.com\/en\/3.0\/ref\/contrib\/postgres\/constraints\/#django.contrib.postgres.constraints.ExclusionConstraint\">v\u00e4ljendip\u00f5histe piirangute kasutamiseks<\/a><\/noindex> Python 3.5 toetamine on l\u00f5petatud. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.postgresql.org\/docs\/9.0\/ddl-constraints.html\">EXCLUDE<\/a><\/noindex>;\n<li class=\"l\"> Toimus web-raamistiku v\u00e4ljaanne\n<\/ul>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Allikas: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=51989\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 web-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Django 3.0, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Python \u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u0412\u0435\u0442\u043a\u0430 Django 3.0 \u043e\u0442\u043d\u0435\u0441\u0435\u043d\u0430 \u043a \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u0438 \u0432\u044b\u043f\u0443\u0441\u043a\u043e\u0432 \u0441 \u043e\u0431\u044b\u0447\u043d\u044b\u043c \u0441\u0440\u043e\u043a\u043e\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2021 \u0433\u043e\u0434\u0430. LTS-\u0432\u0435\u0442\u043a\u0430 2.22 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2022 \u0433\u043e\u0434\u0430, \u0430 \u0432\u0435\u0442\u043a\u0430 1.11 \u0434\u043e \u0430\u043f\u0440\u0435\u043b\u044f 2020 \u0433\u043e\u0434\u0430. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0432\u0435\u0442\u043a\u0438 2.1 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0430. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f: \u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-53653","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 web-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-web-frejmvorka-django-3-0\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a web-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Django 3.0 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 web-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-web-frejmvorka-django-3-0\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-06T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Django 3.0 web-raamistiku v\u00e4ljaanne | ProHoster","description":"\ud83e\udd47Web-raamistiku Django 3.0 v\u00e4ljaanne | ProHoster","canonical_url":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-web-frejmvorka-django-3-0","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u043f\u0443\u0441\u043a web-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430 Django 3.0 | ProHoster","og:description":"\u0421\u043e\u0441\u0442\u043e\u044f\u043b\u0441\u044f \u0440\u0435\u043b\u0438\u0437 web-\u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430","og:url":"https:\/\/prohoster.info\/et\/blog\/news\/vypusk-web-frejmvorka-django-3-0","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-06T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53653","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 08:16:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 20:21:19","updated":"2026-01-24 08:16:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/53653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=53653"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/53653\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=53653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=53653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=53653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}