122 lines
4.5 KiB
HTML
122 lines
4.5 KiB
HTML
{% extends "base.html" %}
|
||
{% load filters %}
|
||
{% load i18n %}
|
||
{% load compress %}
|
||
{% block content %}
|
||
<h1>Paf'Py</h1>
|
||
<p>Et PAF !</p>
|
||
|
||
<h2>Envoyer un ou plusieurs fichiers</h2>
|
||
|
||
En utilisant des requêtes <tt>multipart/form-data</tt> il est possible
|
||
d'envoyer un fichier :
|
||
|
||
<div class="highlight"><pre><span></span>curl {{ request.build_absolute_uri }} <span class="o">-F</span>manage.py<span class="o">=</span>@manage.py
|
||
| URL | size | filename |
|
||
|-------------------------|--------|-----------|
|
||
| https://p.afpy.org/g3LE | 251 | manage.py |
|
||
</pre></div>
|
||
|
||
ou plusieurs fichiers en même temps :
|
||
|
||
<div class="highlight"><pre><span></span>curl {{ request.build_absolute_uri }} <span class="o">-F</span>manage.py<span class="o">=</span>@manage.py <span class="o">-F</span>requirements.txt<span class="o">=</span>@requirements.txt
|
||
| URL | size | filename |
|
||
|-------------------------|--------|------------------|
|
||
| https://p.afpy.org/g3LE | 251 | manage.py |
|
||
| https://p.afpy.org/k4oT | 547 | requirements.txt |
|
||
</pre></div>
|
||
|
||
C'est l'extension dans le nom du fichier qui permet de choisir la
|
||
coloration syntaxique pour chaque fichier.
|
||
|
||
|
||
<h2>Envoyer dans le corps d'une requête</h2>
|
||
|
||
Il est possible de coller un unique fichier via le corps d'une requête <tt>POST</tt> :
|
||
|
||
<div class="highlight"><pre>
|
||
$ cal | curl -XPOST --data-binary @- {{ request.build_absolute_uri }}
|
||
| URL | size | filename |
|
||
|-------------------------|--------|----------|
|
||
| https://p.afpy.org/mo8X | 184 | request |
|
||
|
||
</pre></div>
|
||
|
||
Dans ce cas, il est possible de choisir la coloration syntaxique via l'entête <tt>Content-Type</tt> :
|
||
|
||
<div class="highlight"><pre>
|
||
$ cal | curl -XPOST -H <span class="s2">"Content-Type: text/plain"</span> --data-binary @- {{ request.build_absolute_uri }}
|
||
| URL | size | filename |
|
||
|-------------------------|--------|-------------|
|
||
| https://p.afpy.org/dNuo | 184 | request.txt |
|
||
|
||
</pre></div>
|
||
|
||
|
||
<h2>Fonction <tt>bash</tt></h2>
|
||
|
||
<p>Pour ceux qui ne souhaitent pas rédiger des requêtes <tt>curl</tt>
|
||
toute la journée, voici une petite fonction <tt>bash</tt> :</p>
|
||
|
||
<div class="highlight"><pre><span></span>paf<span class="o">()</span>
|
||
<span class="o">{</span>
|
||
<span class="k">if</span> <span class="o">[[</span> <span class="nv">$#</span> <span class="o">==</span> <span class="m">0</span> <span class="o">]]</span>
|
||
<span class="k">then</span>
|
||
curl https://p.afpy.org/ --data-binary @- -H <span class="s2">"Content-Type: text/plain"</span>
|
||
<span class="k">else</span>
|
||
curl https://p.afpy.org/ <span class="s2">"</span><span class="si">${</span><span class="p">@/*/-F&=@&</span><span class="si">}</span><span class="s2">"</span>
|
||
<span class="k">fi</span>
|
||
<span class="o">}</span>
|
||
</pre></div>
|
||
|
||
Cette fonction est capable d'envoyer un fichier :
|
||
|
||
<div class="highlight"><pre><span></span>$ paf manage.py
|
||
| URL | size | filename |
|
||
|-------------------------|--------|-----------|
|
||
| https://p.afpy.org/g3LE | 251 | manage.py |
|
||
</pre></div>
|
||
|
||
plusieurs fichiers :
|
||
|
||
<div class="highlight"><pre><span></span>$ paf *.py
|
||
| URL | size | filename |
|
||
|-------------------------|--------|-----------------------|
|
||
| https://p.afpy.org/bvRV | 188 | admin.py |
|
||
| https://p.afpy.org/5uei | 296 | context_processors.py |
|
||
| https://p.afpy.org/Xg5a | 1419 | models.py |
|
||
| https://p.afpy.org/GkGS | 309 | urls.py |
|
||
| https://p.afpy.org/LVXL | 2730 | views.py |
|
||
</pre></div>
|
||
|
||
et même de lire sur <tt>stdin</tt> :
|
||
|
||
<div class="highlight"><pre><span></span>$ cal | paf
|
||
| URL | size | filename |
|
||
|-------------------------|--------|-------------|
|
||
| https://p.afpy.org/dNuo | 184 | request.txt |
|
||
</pre></div>
|
||
|
||
|
||
<h2>Accès aux collages</h2>
|
||
|
||
Chaque collage peut-être consulté dans un navigateur (où il est présenté avec de la coloration syntaxique :
|
||
<a href="https://p.afpy.org/g3LE">https://p.afpy.org/g3LE</a>), ou
|
||
être consulté en ligne de commande (où il est délivré brut) :
|
||
|
||
<div class="highlight"><pre><span></span>$ curl https://p.afpy.org/g3LE
|
||
#!/usr/bin/env python
|
||
import os
|
||
import sys
|
||
|
||
if __name__ == "__main__":
|
||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "webtools.settings")
|
||
|
||
from django.core.management import execute_from_command_line
|
||
|
||
execute_from_command_line(sys.argv)
|
||
|
||
</pre></div>
|
||
|
||
{% endblock %}
|