Crie um modelo inicial para trabalhar com o django-rest-framework

Veja o código-fonte aqui .

O framework Django rest serializa dados de bancos de dados estruturados (Postgres, Mysql, Sqlite) em JSON. Django fornece o servidor e gerenciamento de banco de dados. O framework Django rest converte os dados estruturados em notação de objeto javascript, que é enviada para o navegador. Frameworks de frontend modernos como angular, backbone e react, todos gostam de comer JSON. Este fluxo de trabalho obtém um projeto django configurado com a estrutura restante.

Configurar ambiente virtual

$ source ~/.bash_profile
$ lsvirtualenv

$ mkvirtualenv django
-drf-starter-project # OR $ workon django-drf-starter-project

Criar aplicativo django

$ django-admin startproject django_drf_starter_project
$ cd django_drf_starter_project

$ pip install django djangorestframework

$ pip freeze
> requirements.txt
$
./manage.py runserver

Você deverá ver “Funcionou!” em localhost: 8000. (control + C para o servidor no mac). Se você estiver usando git, também copie e cole o arquivo daqui para não enviar lixo para o controle de versão..gitignore

Crie um novo aplicativo

$ ./manage.py startapp jsframework
$ mkdir jsframework
/templates
$ mkdir jsframework
/templates/jsframework
$ touch jsframework
/templates/jsframework/index.html jsframework/templates/jsframework/base.html

Isso cria um novo aplicativo chamado jsframework dentro do projeto django drf starter_project. Também configuramos uma pasta de modelos onde exibiremos nossos modelos html. Criei outra pasta chamada jsframework dentro do diretório de templates. Eu sei que parece um pouco estranho. Fazemos isso para que possamos definir o namespace de nossos modelos mais tarde, ao declarar rotas. O Django irá procurar automaticamente no templatesdiretório por cada aplicativo ao compilar templates.

Deixe o django saber sobre isso

Modifique para incluir o aplicativo rest_framework que instalamos por meio do pip e nosso aplicativo jsframework que criamos do cli.django_drf_starter_project/settings.py

INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'jsframework',
)

Também sincronize seu banco de dados. Django usará sqlite como padrão. Execute depois de atualizar seus aplicativos instalados. Um arquivo será gerado automaticamente. Nosso banco de dados agora está sincronizado../manage.py migratedb.sqlite3

migrar

Renderizar modelos para o navegador

Crie um arquivo dentro do aplicativo jsframework. Eu sei que isso é um pouco complicado, pois já temos um arquivo urls.py no diretório do projeto. Criamos um urls.py dentro do jsframework para armazenar todas as rotas do aplicativo jsframework. É a separação de interesses.urls.py

Defina nossa rota:

from django.conf.urls import url
from . import views

urlpatterns
= [
url
(r'^$', views.index, name='index'),
]

Agora precisamos definir a indexvisualização. Se você está vindo de trilhos ou algo assim, uma view no Django é mais como um controlador. Os modelos são mais parecidos com visualizações. Se isso te confundiu, ignore.

jsframework / views.py
“ `
from django.shortcuts import render

def index (request):
return render (request, ‘jsframework / index.html’)
“ `

Coloque o texto para ter algo para ver. O caminho do arquivo é bobo, mas espero que você possa ver agora porque temos namespace. Django procura automaticamente no diretório de templates para cada aplicativo. Se tivéssemos vários aplicativos, o caminho index.html poderia ficar confuso.jsframework/templates/jsframework/index.html

Agora vamos ao projeto principal agora sobre as rotas que definimos para nosso aplicativo jsframework. Isso é muito simples. Adicione esta linha: . Isso importa as rotas de um arquivo de url para o outro.urls.pyurl(r'^/?', include('jsframework.urls')),

Você verá um texto na tela.

Herança de modelo

Queremos que index.html herde de base.html. Adicionar a base.html:

<!DOCTYPE html>
<html>
<head>
<title>Let's get djangtahstie</title>
</head>

<body>
{% block content %}{% endblock %}

</body>
</html>

Adicione a index.html:
“ `
{% extends” jsframework / base.html “%}

{% block content%}
E aí, mundo?
{% endblock%}
“ `

Adicionar arquivos estáticos

Agora queremos incluir nossos arquivos javascript e css

Ternos

Adicionar do cdn é realmente fácil, é o mesmo que normal. Se você deseja incluir arquivos estáticos locais, as coisas são um pouco diferentes. Em settings.py, há uma linha STATIC_URL = '/static/'que diz ao django para procurar em pastas dentro de aplicativos chamados de arquivos estáticos. Crie isso dentro de jsframework, bem como diretórios para css, imagens e js.

$ mkdir jsframework/static
$ mkdir jsframework
/static/js jsframework/static/css jsframework/static/img
$ touch $ mkdir jsframework
/static/js/main.js jsframework/static/css/main.css

Em base.html, adicione {% load staticfiles %}à linha 1. Em seguida, faça referência às tags de script / link da seguinte forma:

<link rel='stylesheet' href="{{STATIC_URL}}/css/main.css">
<script src="{{STATIC_URL}}/js/main.js"></script>

Veja o código fonte aqui