Sviluppare un sito web con il framework python Django

Tra i vari framework per lo sviluppo di applicazioni web uno che si distingue per facilità di utilizzo senza compromettere le possibilità d’uso è sicuramente Django. Django utilizza il versatile linguaggio python che dall’utilizzo nella computazione scientifica, a linguaggio di scripting, a linguaggio web sta piano piano diventando sempre piu centrale. Per iniziare, dopo ovviamente aver installato python, apriamo un prompt dei comandi o una shell bash su linux e digitiamo:

$ pip install django

Fatto. Pip, il package manager di python si occuperà di scaricare il pacchetto, è installarlo con tutte le sue dipendenze.

A questo punto dobbiamo creare, nel gergo di django,  prima un progetto e poi un’app, ovvero la base per il nostro sito vero e proprio. Per far questo digitiamo

$ django-admin startproject <nome_progetto>
$ cd <nome_progetto>
$ python manage.py startapp <nome_sito>
$ cd <nome_sito>

In quest’ultima directory è la struttura base del nostro sito. In particolare notiamo un file settings.py, urls.py e views.py. Per quanto riguarda il primo basta aggiungere in nostro sito all’interno dell’array INSTALLED_APPS che troviamo al suo interno. Il secondo invece dice a django i collegamenti tra le URL digitate dall’utente e i metodi del nostro controller usando la sintassi

url(r'^entries/', views.entries)

Infine il terzo, nonostante il nome possa essere fuorviante, è il nostro controller, ovvero contiene i metodi che vengono richiamati per ogni URL, ad esempio

def hello(request):
return render_to_response('entries.html', {'entries' : Entry.objects.all()})

A questo punto, definita la logica di navigazione all’interno del nostro sito, mancano le viste, ovvero i file html da mostrare e i modelli ovvero gli oggetti logici che il framework si occuperà di persistere in automatico in un suo database sqlite3 (ovviamente questo si può sostituire con qualcosa di più robusto per app reali di produzione). Iniziamo da quest’ultimi creando il file models.py con il seguente contenuto

from django.db import models

class Entry(models.Model):
text = models.TextField()

def publish(self):
self.save()

Come si può vedere è un modello molto semplice che contiene solo un campo di testo. Infine occupiamoci delle viste. Creiamo una cartella templates e al suo interno un file base.html con il seguente contenuto

<html><head>
<link rel="stylesheet" href="style.css" />
<title>{% block title %}{% endblock %}</title>
</head><body>
<div id="content">{% block content %}{% endblock %}</div>
</body></html>

Come si può vedere questo file funge da base per tutte le nostre viste e non contiene altro che dei segnaposto in cui inserire il contenuto. A questo punto creiamo il file entries.html con il seguente contenuto

{% extends "base.html" %}
{% block title %}Entries{% endblock %}
{% block content %}
<ul>{% for entry in entries %}
<li>{{ entry }}</li>
{% endfor %}</ul>
{% endblock %}

Come si può vedere questa è la nostra vista per il nostro modello che visualizza tutte le entries presenti nel nostro database. Per questa volta è tutto. Alla prossima!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *