• Mutimedia Web la Web Agency Italiana. Contattateci per preventivi gratuiti e consulenze nello sviluppo del vostro sito web o app Ios e Android. Professinalità e assistenza garatite!
    Immagini dei quadri e opere di: Giuseppe Lattanzio

  • Social

    [easy-social-share buttons="facebook,twitter,pinterest,linkedin,digg,stumbleupon,vk,tumblr,print,mail,del,reddit,whatsapp" counters=0 hide_names="force" template="grey-blocks-retina"]
  • WEB AGENCY

  • Sede Principale

    Multimedia Web

    Blog Studio Web

    Studio Web

    Sede a Venezia

    Web Agency Venezia

    Sede a New York

    Nyc Web Design

    Sede International

    Web Designer International

    Sito Demo One Page

    Spaghetti Web

    Landing page

    Savinus

  • smartphone

    Trovaci sul tuo smartphone

  • web-designer-ancona
  • AGENZIA WEB ITALIA

Home / News / Django 3.1: le novità del web framework basato su Python

Django 3.1: le novità del web framework basato su Python


Lo sviluppo di applicazioni web può essere effettuato sfruttando un numero di framework sempre crescente. Se i più tradizionalisti si affidano a PHP o, più recentemente, a JavaScript e Node.js, va detto che l’uso di Python anche in questo contesto comincia a riscontrare pareri sempre più positivi.

Nel contesto dello sviluppo web con Python esistono varie opzioni (ne avevamo viste alcune in questo articolo). Una delle più diffuse è sicuramente rappresentata da Django, giunto proprio oggi alla versione 3.1.

Nel seguito vedremo le principali novità introdotto con questo nuovo rilascio, che può essere utilizzato sfruttando le versioni di Python 3.6, 3.7 e 3.8.

Supporto all’esecuzione asincrona

Già con il rilascio di Django 3.0 era stata introdotta (pur con molte limitazioni) la possibilità di sfruttare la parola chiave async per definire funzioni asincrone. Con il nuovo rilascio, è possibile creare view che vengono eseguite in un contesto asincrono:


async def my_view(request):
    await asyncio.sleep(0.5)
    return HttpResponse('Hello, async world!')

Per sfruttare al meglio questa funzionalità, è però necessario eseguire Django in un contesto ASGI, in quanto l’uso di WSGI non permette di beneficiare degli incrementi prestazionali derivanti dall’esecuzione asincrona.

JSONField

Un’altra interessante caratteristica introdotta con il nuovo rilascio è la possibilità di utilizzare la classe JSONField con tutti i database supportati. Questa nuova classe supporta introspezione, lookup e trasformazioni che, finora, rappresentavano un’esclusiva dell’interfacciamento con PostgreSQL:


from django.db import models
class ContactInfo(models.Model):
    data = models.JSONField()
ContactInfo.objects.create(data={
    'name': 'John',
    'cities': ['London', 'Cambridge'],
    'pets': {'dogs': ['Rufus', 'Meg']},
})
ContactInfo.objects.filter(
    data__name='John',
    data__pets__has_key='dogs',
    data__cities__contains='London',
).delete()

Hashing

Con Django 3.1 è stato introdotto anche il supporto dell’algoritmo di hashing SHA-256. Ciò migliora notevolmente la sicurezza delle applicazioni basate su questo framework, dal momento che token, cookie e variabili di sessione utilizzano ora questo algoritmo.

È bene precisare che, nel caso in cui si passi da una versione precedente di Django alla 3.1, può essere necessario specificare questa opzione, assegnando un opportuno valore alla variabile DEFAULT_HASHING_ALGORITHM:


DEFAULT_HASHING_ALGORITHM = 'sha256'

Per garantire, invece, la retrocompatibilità, dovremo assegnare un valore diverso:


DEFAULT_HASHING_ALGORITHM = 'sha1'

Ulteriori novità

Quelle viste fin qui non sono le uniche novità della nuova versione di Django. Per ottenere una panoramica completa, rimandiamo alle note di rilascio, reperibili direttamente sul sito ufficiale del progetto.

Fonte: Django



Source link