O Django é um framework Web para Python de alto nível que incentiva o desenvolvimento rápido e um design clean e pragmático. Criado por desenvolvedores experientes, ele cuida de grande parte do trabalho de desenvolvimento Web, para que você possa se concentrar em escrever seu aplicativo sem a necessidade de reinventar a roda. Django é um framework livre e open source.
Existem outros frameworks ótimos para Python direcionados ao desenvolvimento Web, como o Web2py, no entanto o Django é o mais famoso e o mais requisitado no mercado de trabalho atual, podemos dizer que o Django em termos de popularidade se assemelha ao framework Rails para Ruby mas conceitualmente possui diferenças significativas, Rails utiliza o Pattern MVC enquanto o Django utiliza o conceito MVT (Model View Template).
Django: https://www.djangoproject.com/
Instalando o Django e Criando Uma Aplicação Web
O Django é fácil de instalar e simples de utilizar, pode ser utilizado pela linha de comando de um modo parecido com o Rails, ou através de IDEs que permitem integração com o Django como, o Eclipse com PyDev (licença gratuita), Visual Studio com Python Tools (versão comunitária gratuita) ou PyCharm Pro (licença com custo). Neste site você encontra um walkthrough sobre como instalar cada IDE citada. Não se preocupe em entender os conceitos MVT agora, veremos muito sobre o assunto durante o decorrer dos post sobre o Django.
1 – Para instalar o Django digite as instruções abaixo no terminal do Linux:
sudo apt-get install python-django # Para testar Python import django django.VERSION
2 – Entre em uma pasta de sua escolha para criar seu primeiro projeto e testa-lo, digite:
django-admin startproject devaberto python manage.py runserver
3 – Com servidor rodando abra seu navegador e digite o endereço local e a porta 8000:
4 – Agora que já temos um projeto criado, precisamos criar uma nova aplicação, digite:
django-admin startapp HelloWorldApp
5 – Com o projeto e a aplicação criados, basicamente precisamos alterar dois arquivos do projeto e um arquivo da aplicação. Vamos começar com o arquivo do projeto settings.py onde adicionaremos nossa aplicação:
6 – O arquivo do projeto url.py é onde importaremos nossa View e mapearemos a URL desejada para a nossa View:
7 – No arquivo da aplicação views.py é onde criaremos o código Python para executar a View. O código HTML deste programa foi retirado do site W3Schools, recomendamos que você o utilize para aprender mais sobre HTML e outras linguagens de script para web, você encontra o link para o site no menu Uteis:
8 – Com o servidor Django do seu projeto rodando, digite o nome da sua aplicação na url do navegador:
Exemplo:
Neste exemplo instalamos o Django e criamos um projeto e uma aplicação básica, onde configuramos os arquivos necessários para que o projeto consiga enxergar nossa View e mapear sua URL, logo criamos uma View para ser executada no navegador.
Python
settings.py
""" Django settings for devaberto project. For more information on this file, see https://docs.djangoproject.com/en/1.6/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.6/ref/settings/ """ # Build paths inside the project like this: os.path.join(BASE_DIR, ...) import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # Quick-start development settings - unsuitable for production # See https://docs.djangoproject.com/en/1.6/howto/deployment/checklist/ # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 's8eic)^+f@%gg0ffq9j3_kfsoo11k*a-&8x7jw@2p(ujy$=p4a' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = True TEMPLATE_DEBUG = True ALLOWED_HOSTS = [] # Application definition INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'HelloWorldApp', ) MIDDLEWARE_CLASSES = ( 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ) ROOT_URLCONF = 'devaberto.urls' WSGI_APPLICATION = 'devaberto.wsgi.application' # Database # https://docs.djangoproject.com/en/1.6/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } } # Internationalization # https://docs.djangoproject.com/en/1.6/topics/i18n/ LANGUAGE_CODE = 'en-us' TIME_ZONE = 'UTC' USE_I18N = True USE_L10N = True USE_TZ = True # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.6/howto/static-files/ STATIC_URL = '/static/'
url.py
from django.conf.urls import patterns, include, url # Importa View from HelloWorldApp.views import hello # from django.contrib import admin # admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'devaberto.views.home', name='home'), # url(r'^blog/', include('blog.urls')), # url(r'^admin/', include(admin.site.urls)), url(r'HelloWorldApp/$', hello), )
views.py
from django.shortcuts import render from django.http import HttpResponse html = """ <!DOCTYPE html> <html> <body> <h1> Hello World - Python - Django </h1> <div style="position:relative;"> <div style="opacity:0.5;position:absolute;left:50px;top:-30px;width:300px;height:150px;background-color:#40B3DF"></div> <div style="opacity:0.3;position:absolute;left:120px;top:20px;width:100px;height:170px;background-color:#8AC007"></div> <div style="margin-top:30px;width:360px;height:130px;padding:20px;border-radius:10px;border:10px solid #EE872A;font-size:120%;"> <h1>CSS = Styles and Colors</h1> <div style="letter-spacing:12px;font-size:15px;position:relative;left:25px;top:25px;">Manipulate Text</div> <div style="color:#40B3DF;letter-spacing:12px;font-size:15px;position:relative;left:25px;top:30px;">Colors, <span style="background-color:#B4009E;color:#ffffff;"> Boxes</span></div> </div></div> </body> </html> """ def hello(request): return HttpResponse(html)