Fino a Quentin Tarantino ha pubblicato il suo capolavoro film epico, Django è stato sinonimo di "il miglior quadro Python di tutti i tempi." Mentre la sua SEO e di ricerca reputazione potrebbe aver preso un colpo, Django è sempre la stessa soluzione top-shelf per lo sviluppo di applicazioni Web in Python.
Con una base di utenti dedicato e una pletora di tutorial online, iniziare a lavorare con Django non è solo consigliato, ma estremamente facile da fare anche.
Questo colosso del mondo dello sviluppo di Python è estremamente ben rispettato ed è stata l'ispirazione di molti quadri simili, alcuni di loro anche al di fuori dello spettro di Python.
Dopo anni e anni di sviluppo, Django è ora uno strumento estremamente stabile, con pochissimi bug e un sacco di documentazione per aiutare qualsiasi principiante fuori. E 'inoltre costantemente aggiornato e aggiornato per le ultime release di Python pure.
In questo momento Django è stato utilizzato sui principali siti Internet come Instagram, Mozilla, Disqus, OpenStack, Rdio e Pinterest, solo per citarne alcuni. Che cosa questo vi dice come sviluppatore è che si può facilmente fiducia per eseguire progetti dei vostri clienti se è in grado di gestire il traffico e userbases gestiscono i siti di cui sopra.
Cosa c'è di nuovo in questa versione:.
- il supporto per l'esecuzione di azioni dopo una transazione commit
- Supporto per la convalida della password.
- mixins autorizzazioni per le viste di classe-base.
- Nuovo styling per contrib.admin.
- Il supporto per l'esecuzione di test in parallelo.
Cosa c'è di nuovo nella versione 1.9:.
- Il supporto per l'esecuzione di azioni dopo una transazione commit
- Supporto per la convalida della password.
- mixins autorizzazioni per le viste di classe-base.
- Nuovo styling per contrib.admin.
- Il supporto per l'esecuzione di test in parallelo.
Cosa c'è di nuovo nella versione 1.8.3:.
- fissi di lavaggio sessione nel backend cached_db
Cosa c'è di nuovo nella versione 1.8.1:.
- Una API formalizzata per Model._meta
- Il supporto nativo per più motori di template.
- Il supporto per le espressioni SQL complesse tramite l'ORM.
- Nuovo PostgreSQL funzionalità specifiche in contrib.postgres.
Cosa c'è di nuovo nella versione 1.7.5 / 1.8b1:
- Bugfix:
- Risolto un crash di migrazione quando unapplying contrib.contenttypes della prima migrazione o di contrib.auth.
- Realizzato tabelle operazione RenameModel rinomina ManyToManyField della migrazione.
- Risolto un crash di migrazione su MySQL la migrazione da una OneToOneField ad un ForeignKey.
- impedito la vista static.serve dalla produzione ResourceWarnings in determinate circostanze.
- controllo schema fisso per ManyToManyField cercare tipo interno invece di controllare istanza di classe, in modo da poter scrivere i campi personalizzati m2m-come con lo stesso comportamento.
Cosa c'è di nuovo nella versione 1.7.2:
- Bugfix:
- Aggiunto GeoDjango compatibilità con driver del database mysqlclient.
- Risolto incidente MySQL 5.6+ con GeometryFields nelle migrazioni.
- Risolto un crash di migrazione durante la rimozione di un campo a cui fa riferimento AlterIndexTogether o AlterUniqueTogether.
- Aggiornato il primo giorno della settimana nel locale ucraino a Lunedi.
- Aggiunto il supporto per l'inizializzazione transazionale metadati spaziale SpatiaLite 4.1 +.
- Risolto un crash di migrazione che impediva la modifica di un campo nullable con un valore predefinito di non annullabile con la stessa impostazione predefinita.
- Risolto un crash di migrazione durante l'aggiunta di GeometryFields con vuoto = True su PostGIS.
- uso ammesso di DateTimeField () come Transform.output_field.
- Risoluzione di un errore di migrazione che coinvolge serializzazione galleggiante (& quot; nan & quot;) e galleggiante (& quot; inf & quot;).
- fissi una regressione in cui i campi di modulo personalizzato con un attributo set di query, ma non limit_choices_to non potevano essere utilizzati in un ModelForm.
- Corretto un errore di convalida tipo di campo personalizzato con MySQL backend quando tipo_db restituito Nessuno.
- Risolto un crash di migrazione quando un campo viene rinominato che fa parte di un index_together.
- squashmigrations fissi a rispettare il parametro --no-optimize.
- Realizzato RenameModel reversibile.
- Evitato rollbacks inutili di migrazioni da altre applicazioni durante la migrazione a ritroso.
- Corretto un errore di query di rara quando si utilizza subquery profondamente nidificate.
- Risolto un crash nelle migrazioni durante l'eliminazione di un campo che è parte di un indice / vincolo unique_together.
- fissi django.core.files.File .__ repr __ () quando il nome del file contiene caratteri Unicode.
- Aggiunto contesto mancante alla visualizzazione delete_selected della amministrazione che impediva intestazione sito personalizzato, ecc di apparire.
- fissi una regressione con inline generati dinamicamente e riferimenti di campo consentite in Admin.
- Corretto un bug ciclo infinito per alcune dipendenze di migrazione ciclici, e reso il messaggio di errore per le dipendenze cicliche molto più utile.
- Aggiunto mancante index_together trattamento per SQLite.
Cosa c'è di nuovo nella versione 1.7.1:
- ammessi legati molti-a-molti campi per essere si fa riferimento nella amministrazione.
- Aggiunto un messaggio di errore più utile se si tenta di migrare un app senza prima creare il tavolo ContentTypes.
- migrazioni modificati algoritmo di dipendenza per evitare possibili ricorsione infinita.
- Risolto un UnicodeDecodeError quando il messaggio di errore a livello contiene caratteri Unicode.
- clausole reintegrato mancanti di controllo SQL che sono stati omessi in alcuni backend quando non si utilizza le migrazioni.
- serializzazione fisso di oggetti di tipo a migrazioni.
- inline ammessi e riferimenti nascosti ai campi di amministrazione.
- Il decoratore @deconstructible ora non riesce con un ValueError se l'oggetto decorato non può automaticamente essere importato.
- Corretto un errore di battitura in un messaggio di errore inlineformset_factory () che ha causato un crash.
- Restaurata la possibilità di utilizzare ABSOLUTE_URL_OVERRIDES con il modello 'auth.User' (# 11775). Come effetto collaterale, l'impostazione aggiunge ora un metodo get_absolute_url () per qualsiasi modello che appare in ABSOLUTE_URL_OVERRIDES ma non definisce get_absolute_url ().
- Evitato mascherare alcune eccezioni ImportError durante l'applicazione di carico.
- index_together vuoto o modello unique_together opzioni non ha prodotto risultati più lunghi in infinite migrazioni.
- Corretto il crash in contrib.sitemaps se lastmod restituito una data piuttosto che un datetime.
- migrazioni autorizzati a lavorare con app_labels che hanno la stessa ultima parte (ad esempio django.contrib.auth e vendor.auth).
- Restaurata la capacità di deepcopy oggetti F.
- sono stati aggiunti formati per Welsh (CY) e diverse versioni locali cinesi (zh_CN, zh_Hans, zh_Hant e zh_TW). Formati per macedone sono stati corretti.
- Aggiunto citando i nomi di vincoli nel SQL generato dalle migrazioni per evitare scontro con caratteri maiuscoli nel nome.
- ridenominazione fisso di modelli con una relazione molti-a-molti campi auto-referenziale (ManyToManyField ( 'self')).
- Aggiunta la get_extra (), get_max_num (), e get_min_num () ganci per GenericInlineModelAdmin.
- Realizzato migrations.RunSQL richiede non più segno di percentuale fuga. Questo è ora in linea con cursor.execute ().
- ha effettuato l'iscrizione SERIALIZE nel dizionario TEST utilizzabile.
- bug nelle migrazioni che hanno impedito i vincoli di chiave per i modelli non gestiti con una chiave primaria personalizzato.
- Aggiunto SchemaEditor per MySQL GIS backend in modo che gli indici spaziali verranno creati per le applicazioni con le migrazioni.
- Aggiunto SchemaEditor per Oracle GIS back-end in modo che saranno creati metadati spaziali e gli indici per le applicazioni con le migrazioni.
- Costretto l'opzione related_name campo Modello a Unicode durante la generazione di migrazione per generare migrazioni che funzionano sia con Python 2 e 3.
- fissi MigrationWriter di gestire tipi interni senza importazioni.
- fissi deepcopy su ErrorList.
- fatto la admindocs vista per navigare Dettagli Verifica se la vista specificata nella URL esiste nella URLconf. In precedenza è stato possibile importare i pacchetti arbitrari dal percorso di Python. Questo non è stato considerato un problema di sicurezza perché admindocs è accessibile solo al personale degli utenti.
- Risolto incidente UnicodeDecodeError in AdminEmailHandler con caratteri non-ASCII nella richiesta.
- fissi get_or_create mancante e update_or_create sui gestori correlati che causano IntegrityError.
- urlsafe_base64_decode Fatto () restituire il tipo corretto (stringa di byte) su Python 3.
- makemigrations ora possibile serializzare i valori di fuso orario-consapevoli.
- Aggiunta una richiesta al migrazioni interrogante quando si rimuove il vincolo nullo da un campo per evitare un IntegrityError sulle righe NULL esistente.
- fissi rapporti generici in ModelAdmin.list_filter.
- Restaurato conformità RFC per il back-end SMTP in Python 3.
- Risolto un crash durante l'analisi biscotti contenenti contenuto non valido.
- Il quadro di controllo del sistema ora genera l'errore models.E020 quando il metodo della classe Model.check () non è raggiungibile.
Cosa c'è di nuovo nella versione 1.7:
- Un nuovo sistema integrato di migrazione di database. Note sulla aggiornamento da Sud (una popolare applicazione di terze parti che fornisce funzionalità di migrazione) sono inoltre disponibili.
- Un concetto refactoring di applicazioni Django. applicazioni Django non sono legati all'esistenza di un file di modelli, e ora possono specificare sia i dati di configurazione e il codice da eseguire come Django si avvia.
- I miglioramenti alle API di modello di campo per sostenere le migrazioni e, in futuro, per consentire facile aggiunta di supporto composito chiave per ORM di Django.
- Miglioramenti per manager personalizzato e classi QuerySet, permettendo rapporto attraversamento inverso per specificare il Manager per l'uso, e la creazione di un manager da una classe QuerySet personalizzato.
- Un controllo quadro del sistema estensibile che può aiutare gli sviluppatori a individuare e diagnosticare gli errori.
Cosa c'è di nuovo nella versione 1.6.3 / 1.7b2:
- fissi:
- MySQL typecasting
- l'esecuzione di codice imprevisto utilizzando reverse ()
- caching di pagine anonime potrebbe rivelare CSRF gettone
Cosa c'è di nuovo nella versione 1.6.2:
- posta fissa codifica su Python 3.3.3+.
- Risolto un problema per cui quando settings.DATABASES [ 'default'] [ 'AUTOCOMMIT'] = false, la connessione non era in modalità autocommit, ma Django finta che fosse.
- fissi una regressione multipla-ereditarietà delle tabelle esclude) query (.
- Aggiunto elementi mancanti django.utils.timezone .__ tutto __.
- È stato risolto un problema di disallineamento campo con select_related () e l'eredità del modello.
- unirsi fissa la promozione e le condizioni negati.
- Oracle database di introspezione ora funziona con booleano e galleggiante campi.
- Risolto un problema per cui gli oggetti pigri non sono stati effettivamente contrassegnati come sicuri quando passa attraverso mark_safe () e potrebbe finire per essere doppio escape.
- Risolto un crash durante l'esecuzione del comando changepassword quando la rappresentazione oggetto utente contiene caratteri non ASCII.
- Il comando collectstatic solleverà un errore piuttosto che di default per usare la directory di lavoro corrente se STATIC_ROOT non è impostato. In combinazione con l'opzione --clear, il comportamento precedente potrebbe cancellare nulla al di sotto della directory di lavoro corrente.
Cosa c'è di nuovo nella versione 1.6.1:
- Problemi risolti:
- Corretto visualizzazione delle istanze in linea in formsets quando genitore ha 0 per la chiave primaria.
- fissi una regressione in cui querysets personalizzate per le chiavi esterne sono stati sovrascritti se ModelAdmin aveva ordinare insieme.
- Rimosso menzione di una caratteristica nell'opzione --locale / -l delle makemessages e compilemessages comandi che mai lavorato come promesso: Supporto di più nomi di locale, separati da virgole. E 'ancora possibile specificare più locale in una corsa utilizzando l'opzione più volte.
- fissi una regressione che ha attivato inutilmente di configurazione delle impostazioni durante l'importazione get_wsgi_application.
- prova fissa client di logout () quando si utilizza la sessione di backend basato su cookie.
- Risolto un crash quando un GeometryField utilizza un widget non geometriche.
- fissi hash della password aggiornamento quando si cambia il numero di iterazioni.
- Corretto un bug nella visualizzazione di debug quando il URLconf contiene un solo elemento.
- -Re aggiunto mancante risultato della ricerca di reset e conteggio collegamento in vista di amministrazione elenco modifiche.
- La lingua corrente non è più salvato la sessione LocaleMiddleware su ogni risposta, ma solo dopo un logout.
- Risolto un crash durante l'esecuzione runserver su sistemi non in lingua inglese, e quando la data formattata nella sua produzione conteneva caratteri non-ASCII.
- Risolto un crash nella vista di debug dopo un'eccezione si è verificata su Python ≥ 3.3.
- Risolto un crash in ImageField su alcune piattaforme (Homebrew e RHEL6 riportato).
- fissi una regressione quando si utilizzano i rapporti generici in ModelAdmin.list_filter.
Metodo
Cosa c'è di nuovo nella versione 1.6:
- Django 1.6 semplifica i modelli di progetto di default e di applicazione, accendendo protezione clickjacking e l'interfaccia di amministrazione per impostazione predefinita.
- Django 1,6 revisioni di Django, e ora consente a livello di database autocommit per impostazione predefinita. Ciò comporta alcuni deprecati, quindi assicuratevi di leggere le note sulla migrazione da gestione delle transazioni 1,5 stile.
- Django 1.6 supporta le connessioni di database persistenti. Si noti che questa non è la stessa di pool di connessioni; questo permette semplicemente le connessioni di vivere (per un tempo configurabile) attraverso richieste gestite dallo stesso operatore.
la gestione delle transazioni
Cosa c'è di nuovo nella versione 1.5.4 / 1.6 Beta 4:
- fissi:
- Denial of Service tramite grandi password.
Cosa c'è di nuovo nella versione 1.5.3 / 1.6 Beta 3:
- Queste release affrontare una DIRECTORY vulnerabilità di attraversamento in uno dei tag modello built-in di Django.
Cosa c'è di nuovo nella versione 1.5.2:
- fissi:
- Cross-site scripting (XSS) in interfaccia di amministrazione
- Possibile XSS tramite is_safe_url
Cosa c'è di nuovo nella versione 1.5.1:
- avvisi a livello di modulo emessi durante le prove non sono più silenziosamente nascosto.
- impedito il filtraggio su hash delle password in Admin utente.
Cosa c'è di nuovo nella versione 1.5.0:
- Django 1.5 introduce il supporto per un modello di utente configurabile.
- Django 1.5 è la prima versione Django con il supporto per Python 3 (in particolare, Python 3.2 e successive).
- la documentazione di Django ha anche ottenuto un lavoro abbastanza significativo.
Cosa c'è di nuovo nella versione 1.4.4 / 1.5 RC 2:
- Queste release di sicurezza fissano quattro temi :. uno phishing potenziale vettore, un denial-of-service vettore, un problema della fuga di informazioni, e una serie di vulnerabilità XML
Cosa c'è di nuovo nella versione 1.4.2:.
- Host fisso intestazione avvelenamento
- Documentazione di opzione dei cookie HttpOnly.
Cosa c'è di nuovo nella versione 1.4.1:
- Fixed bug di sicurezza:
- Per cross-site scripting in vista di autenticazione.
- Denial-of-service in validazione immagine.
- Denial-of-service via get_image_dimensions ().
Cosa c'è di nuovo nella versione 1.4:
- Django 1.4 è l'ultima release ufficiale di Django che supporterà Python 2.5.
Cosa c'è di nuovo nella versione 1.4 RC 2:
- Django 1.4 gocce supporto per Python 2.4
- Il supporto per framework di test in browser
- Seleziona per il supporto UPDATE
- Model.objects.bulk_create nel ORM
- QuerySet.prefetch_related
- Migliorata hashing la password
- HTML5 DOCTYPE
- Filtri Lista di interfaccia di amministrazione
- ordinare più in interfaccia di amministrazione
- metodi Nuova ModelAdmin
- inline Admin rispetto
- Strumenti per la firma crittografica
- Cookie-based sessione di backend
- Nuova Creazione guidata Maschera
- reverse_lazy
- URL Traducendo
- supporto alla traduzione contestuale per {% trans%} e {% blocktrans%}
- kwargs personalizzabile SingleObjectMixin URLConf
- tag modello di assegnazione
- * args e ** il supporto per le funzioni kwargs tag modello di supporto
- Nessun avvolgimento delle eccezioni in modalità TEMPLATE_DEBUG
- truncatechars filtro template
- tag modello statico
- stoccaggio CachedStaticFilesStorage backend
- Protezione clickjacking semplice
- miglioramenti CSRF
- filtraggio rapporto Errore
- supporto IPv6 esteso
- Aggiornamento layout del progetto predefinito e manage.py
- supporto WSGI Migliorato
- progetto personalizzato e app modelli
- Il supporto per i fusi orari
- confronti HTML nei test
- Due nuove stringhe di formato data li>
autorizzazioni utente
modelli
Cosa c'è di nuovo nella versione 1.3.1:.
- manipolazione sessione
- attacco denial of service tramite URLField.
- URLField reindirizzamento.
- Advisory:. Intestazione host e CSRF
- Advisory:. Pagine DEBUG e POST dati sensibili
Cosa c'è di nuovo nella versione 1.3:.
- Un quadro per le viste di classe a base di scrittura
- Il supporto incorporato per l'utilizzo di servizi di registrazione di Python.
- Supporto Contrib per una facile gestione dei file statici.
- framework di test di Django ora supporta (e viene fornito con una copia) della biblioteca unittest2.
Cosa c'è di nuovo nella versione 1.2.5:
- fix di sicurezza:
- Un difetto nella gestione CSRF.
- Potenziale XSS nel rendering campo file.
- vulnerabilità Directory attraversamento su Windows.
Cosa c'è di nuovo nella versione 1.3 beta 1:.
- Le modifiche ai metodi di login di admin
- Django 1.3 fornito con un nuovo django.contrib.staticfiles contrib app per aiutare gli sviluppatori di gestire i file multimediali statici (immagini, CSS, JavaScript, ecc), che sono necessari per eseguire il rendering di una pagina web completa.
- Ulteriori modifiche al app staticfiles.
Cosa c'è di nuovo nella versione 1.2.3 / 1.3 alpha 1:.
- vista di classe a base di
- Registrazione.
- file statici estesi movimentazione.
- I gestori contesto di transazione.
Requisiti :
- Python 2.7 o superiore
I commenti non trovato