[Tutorial] Gerenciador de conteъdo (Django)
#1

E ai galera, alguns dias atrбs eu havia publicado um tutorial rбpido, que abordava o conteъdo de agendamento de tarefas no Linux, para vocк poder automatizar suas atividades.

Link: Agendamentos Cron


Esse vai ser mais um tutorial leve, mostrando algumas aplicaзхes dessa framework na rotina diбria de alguйm que mexe com servidores SA-MP, e etc...

Pra quem ainda nгo conhece Python, recomendo dar uns 50 centavos de olhada no site deles: Welcome to Python.org

Sobre o django framework, existe um link para download e que contйm uma documentaзгo salvadora de vidas. O django contribui muito com o processo de desenvolvimento de uma aplicaзгo, seja ela qual for, tambйm recomendo mais uns 50 centavos de olhada no site deles: The web framework for perfectionists with deadlines | Django.





Entгo, vamos comeзar listando algumas aplicaзхes para o Django no meu servidor de SA-MP.
  • Criar um site para meu servidor
  • Criar um fуrum para meu servidor
  • Criar um UCP para meu servidor
  • Criar um painel de administraзгo para o meu servidor (site)
  • Interface de comuniзгo entre site/servidor com banco de dados

- Criar um site para meu servidor / Criar um fуrum para meu servidor
O Django framework pode ser utilizado para criaзгo de pбginas web, aonde vocк irб utilizar HTML, python, e outros meios para desenvolvimento web. Utilizando o Django framework, vocк terб possibilidade de manter seu site sincronizado com os dados do seu servidor, pelo banco de dados.
- Criar um UCP para meu servidor / Criar um painel de administraзгo para o meu servidor
Visto que vocк pode utilizar o mesmo banco do servidor no Django, vocк terб a possibilidade de criar pбginas de forma fбcil e rбpida para retornar dados de usuбrios, ou administradores, ou estatнsticas do servidor.
Exemplo de HTML para seleзгo de dados:
Code:
<h1>Usuбrios</h1>
<ul>
{% for jogador in jogadores.all %}
    <li>{{ jogador.name }}</li>
{% endfor %}
</ul>
Com este simples HTML, vocк estarб executando um loop em todos os jogadores da tabela 'jogadores', e o servidor irб renderizar uma pбgina com uma lista contendo todos os nomes de jogadores registrados no seu banco.


- Interface de comuniзгo entre site/servidor com banco de dados
Com o Django framework, vocк poderб tambйm criar/modelar seu banco de dados atravйs de codificaзгo em python, de forma fбcil e intuitiva. E esse mesmo banco poderб ser utilizado para que vocк rode no seu servidor de SA-MP, de modo que uma vez que vocк insira um dado atravйs do servidor, o Django terб acesso ao mesmo dado, assim formando uma interface de comunicaзгo, que poderб ser utilizado para as aplicaзхes exemplificadas acima.


Nesse tutorial, estaremos criando um aplicativo administrativo, que servirб como gerenciador de conteъdo do seu sistema/banco de dados.

1. Instalaзгo

Code:
##### para iniciar a instalaзгo do Django, tendo como ponto de partida um Ubuntu 14.04 Trusty recentemente criado.
##### й necessбrio procurar por updates, para efetivar/concretizar novas atualizaзхes do sistema

sudo apt-get update

#### Apуs efetivas as atualizaзхes disponнveis, instalamos o gerenciador de pacotes do Python, para instalar as futuras dependкncias

sudo apt-get install python-pip

#### Utilizamos o gerenciador de pacotes do python 'pip' para instalar o resto do djando e suas dependкncias

sudo pip install django


2. Configuraзгo

Code:
# Iniciar um novo projeto
# django-admin startproject NOME_DO_PROJETO
django-admin startproject meu_gerenciador

# Inicializar o banco padrгo de testes do Django (sqlite3)
python manage.py migrate

# Criar um novo app, para o seu sistema
# python manage.py startapp NOME_DO_APLICATIVO
python manage.py startapp meu_app
(OBS: Essa configuraзгo do django й bбsica e pode ser encontrada em mais detalhes no site do mesmo, na aba da documentaзгo.)

Para terminar essa parte de configuraзгo, toda vez que vocк criar um aplicativo utilizando 'manage.py startapp', й necessбrio adicionar esse app criado em /meu_gerenciador/meu_gerenciador/settings.py.

meu_gerenciador/meu_gerenciador/settings.py:
Code:
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    ...
    ...
    ...
    'meu_app', #Aqui vocк inseri seu app
)


3. Models / Tabelas

Uma vez que instalamos e configuramos o projeto e o aplicativo que irб executar no nosso servidor, poderemos comeзar criando uma tabela para os jogadores.

Toda vez que vocк utiliza o comando de criar um aplicativo novo (startapp), serб empregado um arquivo nomeado models.py, que representa as tabelas do banco, lб vocк irб codificar todas as tabelas do seu banco.

meu_gerenciador/meu_app/models.py:
Code:
#importando os modelos padrхes de dados do Django (inteiro, string, float, etc...)
from django.db import models

#classe que representa a tabela Jogador
class Jogador(models.Model):
	name = models.CharField(max_length=24)
	level = models.IntegerField()


#Essa classe acima representa o seguinte script em MySQL:
#	
#	CREATE TABLE Jogador (
#		id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
#		name varchar(24) NOT NULL,
#		level INT
#	)
#
OBS2: Ao executar as modificaзхes do seu arquivo models.py, salvar e fechar o mesmo, й necessбrio que vocк execute um 'makemigrations', que й aonde o Django irб transformar todo o seu cуdigo python da tabela em um arquivo compilado, e entгo ele irб transformar o mesmo em scripts e executar a aзгo no banco associado ao seu sistema.
Code:
python manage.py makemigrations
python manage.py migrate
Apуs atualizar seu banco, com a nova estrutura proposta no arquivo de models.py, seu servidor estб pronto para acessar os dados que forem inseridos no app.


OFF-TOPIC: Existe uma maneira simples de acessar seu banco atravйs de um shell (bash) do python, aonde vocк poderб inserir dados, selecionar dados, e etc... Exemplo:
Code:
python manage.py shell
Assim vocк terб acesso a um shell, aonde poderб acessar o banco, eu nunca precisei utilizar esse nнvel de abstraзгo, mas eu achei que seria bacana citar. Para mais exemplos, e aplicaзхes do conteъdo, acessem o link do Django framework.


OFF-TOPIC: Para iniciar o processo de integraзгo do projeto SA-MP com o Django, primeiro vocк precisa entender do banco que irб utilizar, como eu iniciei o tutorial em cima do DB padrгo de testes (sqlite), aqui tem um link sobre o conteъdo: How to: SQLITE

O Django permite tambйm que vocк utilize: MySQL, PostgreSQL, entre outros...

No link do Django framework, na aba de documentaзгo eles tem conteъdo explicativo sobre migraзгo de banco, para MySQL ou PostgreSQL.

Em teoria nгo й nenhum bixo de 7 cabeзas, basta vocк alterar a linha que indica o banco que vocк usa, no settings.py, e entгo, baixar as dependкncias do banco, por exemplo, se vocк for utilizar postgresql.

Altera o settings.py:
Code:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'NOME DO BANCO',                      
        'USER': 'NOME DO USUARIO',
        'PASSWORD': 'SENHA DO USUARIO',
        'HOST': 'IP DO SERVIDOR DO BANCO',
        'PORT': 'PORTA DE ACESSO DO BANCO, SE FOR A PADRAO REMOVA ESSA LINHA'
    }
}
E entгo, instalar o postgresql no seu servidor:
Code:
sudo apt-get install postgresql postgresql-contrib
Tendo isso, vocк efetua um makemigrations novamente, e shazam ! Vocк migrou seu banco de sqlite para postgresql.



4. Gerenciador de conteъdo

Apуs instalar, configurar, criar seu banco e integrar seu servidor sa-mp com seu aplicativo django, vocк ainda pode criar um sistema de gerenciamento de conteъdo, que й padrгo tambйm do Django framework. Este sistema de gerenciamento de conteъdo te permite visualizar os dados, alterar os dados e inserir novos dados de forma intuitiva atravйs de um aplicativo visual (website), que o prуprio django cria.

Para criar o seu gerenciador de conteъdo, basta definir um superuser para o seu Django Project:
Code:
python manage.py createsuperuser
Com essa linha, vocк criou um usuбrio administrativo, e habilitou todo o seu sistema de gerenciamento de conteъdo.


Uma vez que vocк habilitou o seu sistema de gerenciamento de conteъdo, acesse o mesmo atravйs do seguinte caminho: ip_do_host:8000/admin

Caso vocк esteja executando este tutorial na sua mбquina local, utilize localhost:8000/admin, vocк serб redirecionado para uma pбgina que irб exigir uma senha de administrador, que foi o cadastro que vocк efetuou anteriormente no 'createsuperuser'

Pбgina:


Apуs efetuar login nessa pбgina, vocк serб novamente redirecionado para uma pбgina aonde irб ser listado o nome de todas as tabelas que vocк tem registrados no seu banco, ao selecionar qualquer uma delas, vocк verб todos os registros da tabela selecionada, e ao selecionar um registro, vocк irб para uma pбgina de ediзгo, aonde vocк poderб alterar o registro e salvar.





Conclusгo

Como dб pra ver, nada й difнcil de se fazer utilizando o django, nгo й atoa que ele й uma framework que visa agilidade no processo de desenvolvimento dessa parte back-end, gerenciamento de conteъdo, pбginas dinвmicas consumistas de dados e etc...

O Django tem diversas aplicaзхes no mercado de trabalho, atualmente faz 1 ano e meio que tenho experiкncia com o mesmo, e sempre me foi um quebra galho.


OFF-TOPIC: O Django й open-source, logo, todo o design e estruturaзгo de cуdigo pode ser personalizado por vocк. Existem sites que tem diversas extensхes de design pro django admin (aquela pбgina de gerenciamento de conteъdo), isso pode complementar sua aplicaзгo, permitir a utilizaзгo de filtros na pesquisa de dados, aumentar a usabilidade do painel, deixando o mesmo mais intuitivo pro administrador, e estilizar sua aplicaзгo, deixando a mesma mais bonita.

Eu por exemplo utilizava um tema pro meu painel administrativo do Django, que complementava mais algumas coisas, link: Django Suit theme



Com o bбsico citado neste tуpico, vocкs poderгo criar aplicativos em Django e utiliza-los dentro dos seus servidores, e toda e qualquer complementaзгo necessбria a respeito do conteъdo de estudo, pode ser trabalhado ainda aqui no fуrum, caso vocкs decidam discutir sobre o assunto... Ou entгo podem visitar o link do django e conhecer mais sobre a documentaзгo do mesmo, й uma documentaзгo bem completa, recomendo a visita.



Questхes tйcnicas:

O servidor que eu utilizei pra montar o aplicativo deste tutorial foi uma mбquina m1.small, alocada pelo BlueMix da IBM, 2GB de RAM, 10GB de disco, 1 CPU. SO Ubuntu 14.04.

O banco utilizado foi o padrгo de testes que o django implementa, sqlite.





OBS: Quem tiver algum problema relacionado ao conteъdo do tуpico, ou quiser discutir mais, comente a respeito...
Reply
#2

Jб tinha ouvido falar sobre o djangosuit.com, Mais nunca testei ou fiz o download, Irei baixar e da uma olhada mim interessei sobre, kk ate porque estou criando um UCP para meu server, Vlw ae pelas dicas, rsrs Bom tutorial parabйns

+rep
Reply
#3

Como sempre Уtimo trabalho ipsNan, parabйns, mais tarde vou ler esse tutorial
Reply
#4

Nao sei porque mas nao curto Python.

Bom tutorial.
Reply
#5

Уtima postagem, usarei pra ips e pro projeto
Reply
#6

Quote:
Originally Posted by PT
View Post
Nao sei porque mas nao curto Python.

Bom tutorial.
O tutorial й уtimo, se vocк um dia tiver capacidade para criar um servidor, pode testar o mesmo para ver o quгo quebra galho isso vai ser.


Quote:
Originally Posted by ipsLeon
View Post
Уtima postagem, usarei pra ips e pro projeto
Exatamente, vamos adotar isso nos projetos internos e terminar logo esse projeto ai.
Й uma уtima ferramenta.

Inseri mais uma imagem, pro pessoal ter uma noзгo bбsica do painel de controle que й gerado pelo Django.
Reply
#7

Quote:
Originally Posted by ipsNan
View Post
O tutorial й уtimo, se vocк um dia tiver capacidade para criar um servidor, pode testar o mesmo para ver o quгo quebra galho isso vai ser.




Exatamente, vamos adotar isso nos projetos internos e terminar logo esse projeto ai.
Й uma уtima ferramenta.

Inseri mais uma imagem, pro pessoal ter uma noзгo bбsica do painel de controle que й gerado pelo Django.
Й realmente muito foda, pena que boa parte do pessoal nгo vai usar por querer tudo pronto. De qualquer forma, esse conceito de integraзгo de diferentes plataformas me conquistou, tenho atй que falar contigo depois sobre isso.
Reply
#8

Otimo tutorial mano Parabйns fico foda
Reply
#9

Excelente material, IpsNan.

Reputado.
Reply
#10

Bom, mas continuo preferindo o PHP...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)