|
1 | 1 | <?xml version="1.0" encoding="utf-8"?>
|
2 |
| -<feed xmlns="http://www.w3.org/2005/Atom"><title>PythonClub</title><link href="http://pythonclub.com.br/" rel="alternate"></link><link href="http://pythonclub.com.br/feeds/all.atom.xml" rel="self"></link><id>http://pythonclub.com.br/</id><updated>2015-12-01T22:00:00-02:00</updated><entry><title>Criando novos comandos no django-admin</title><link href="http://pythonclub.com.br/criando-novos-comandos-no-django-admin.html" rel="alternate"></link><updated>2015-12-01T22:00:00-02:00</updated><author><name>Regis da Silva</name></author><id>tag:pythonclub.com.br,2015-12-01:criando-novos-comandos-no-django-admin.html</id><summary type="html"><p>Veja aqui como criar o seu próprio comando para ser usado com o django-admin ou manage.py do Django.</p> |
| 2 | +<feed xmlns="http://www.w3.org/2005/Atom"><title>PythonClub</title><link href="http://pythonclub.com.br/" rel="alternate"></link><link href="http://pythonclub.com.br/feeds/all.atom.xml" rel="self"></link><id>http://pythonclub.com.br/</id><updated>2015-12-03T22:00:00-02:00</updated><entry><title>Criando novos comandos no django-admin</title><link href="http://pythonclub.com.br/criando-novos-comandos-no-django-admin.html" rel="alternate"></link><updated>2015-12-03T22:00:00-02:00</updated><author><name>Regis da Silva</name></author><id>tag:pythonclub.com.br,2015-12-03:criando-novos-comandos-no-django-admin.html</id><summary type="html"><p>Veja aqui como criar o seu próprio comando para ser usado com o django-admin ou manage.py do Django.</p> |
3 | 3 | <p>O <a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/">django-admin ou manage.py</a> já tem um bocado de comandos interessantes, os mais utilizados são:</p>
|
4 | 4 | <ul>
|
5 | 5 | <li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#startproject-projectname-destination">startproject</a> - cria novos projetos.</li>
|
|
10 | 10 | <li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#test-app-or-test-identifier">test</a> - roda os testes da aplicação.</li>
|
11 | 11 | <li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#loaddata-fixture-fixture">loaddata</a> - carrega dados iniciais a partir de um json, por exemplo, <code>python manage.py loaddata fixtures.json</code></li>
|
12 | 12 | <li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#shell">shell</a> - inicializa um interpretador Python interativo.</li>
|
13 |
| -<li>[dbshell][18] - acessa o banco de dados através da linha de comando, ou seja, você pode executar comandos sql do banco, por exemplo, diretamente no terminal.</li> |
| 13 | +<li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#dbshell">dbshell</a> - acessa o banco de dados através da linha de comando, ou seja, você pode executar comandos sql do banco, por exemplo, diretamente no terminal.</li> |
14 | 14 | <li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#inspectdb">inspectdb</a> - retorna todos os modelos Django que geraram as tabelas do banco de dados.</li>
|
15 | 15 | <li><a href="https://docs.djangoproject.com/en/1.8/ref/django-admin/#runserver-port-or-address-port">runserver</a> - roda o servidor local do projeto Django.</li>
|
16 | 16 | </ul>
|
@@ -56,7 +56,7 @@ touch core/management/commands/<span class="o">{</span>__init__.py,h
|
56 | 56 | <blockquote>
|
57 | 57 | <p>Importante: estamos usando Django 1.8 e Python 3.</p>
|
58 | 58 | </blockquote>
|
59 |
| -<p>O Django 1.8 usa o <code>argparse</code> como parser de argumentos do <code>command</code>, mais informações em [module-argparse][19].</p> |
| 59 | +<p>O Django 1.8 usa o <code>argparse</code> como parser de argumentos do <code>command</code>, mais informações em <a href="https://docs.python.org/2/library/argparse.html#module-argparse">module-argparse</a>.</p> |
60 | 60 | <div class="highlight"><pre><span class="kn">from</span> <span class="nn">django.core.management.base</span> <span class="kn">import</span> <span class="n">BaseCommand</span><span class="p">,</span> <span class="n">CommandError</span>
|
61 | 61 | <span class="kn">from</span> <span class="nn">optparse</span> <span class="kn">import</span> <span class="n">make_option</span>
|
62 | 62 |
|
@@ -175,7 +175,7 @@ python manage.py migrate
|
175 | 175 | <p>O código a seguir é longo, mas basicamente temos</p>
|
176 | 176 | <ul>
|
177 | 177 | <li><code>print_red(name)</code> função que imprime um texto em vermelho (opcional)</li>
|
178 |
| -<li><code>get_html(year)</code> função que lê os dados da api usando [requests][20], e depois escolhe um filme randomicamente a partir de 2 letras</li> |
| 178 | +<li><code>get_html(year)</code> função que lê os dados da api usando <a href="http://docs.python-requests.org/en/latest/">requests</a>, e depois escolhe um filme randomicamente a partir de 2 letras</li> |
179 | 179 | <li><code>get_movie(year)</code> se o dicionário conter <code>{'Response': 'True', ...}</code> então retorna um dicionário do filme localizado</li>
|
180 | 180 | <li><code>save()</code> salva os dados no banco</li>
|
181 | 181 | <li><code>handle(movies, year)</code> este é o comando principal. Busca os filmes várias vezes, conforme definido pela variável <code>movies</code>, e salva os n filmes.</li>
|
@@ -219,7 +219,7 @@ python manage.py migrate
|
219 | 219 | <span class="sd"> &quot;&quot;&quot;</span>
|
220 | 220 |
|
221 | 221 | <span class="c"># Escolhe duas letras aleatoriamente</span>
|
222 |
| - <span class="n">letters</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">ascii_lowercase</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span> |
| 222 | + <span class="n">letters</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">random</span><span class="o">.</span><span class="n">choice</span><span class="p">(</span><span class="n">string</span><span class="o">.</span><span class="n">ascii_lowercase</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">2</span><span class="p">))</span> |
223 | 223 |
|
224 | 224 | <span class="c"># Se não for definido o ano, então escolhe um randomicamente</span>
|
225 | 225 | <span class="k">if</span> <span class="n">year</span> <span class="ow">is</span> <span class="bp">None</span><span class="p">:</span>
|
|
0 commit comments