Maison  >  Article  >  interface Web  >  Résumer l'expérience d'utilisation de python Django en développement

Résumer l'expérience d'utilisation de python Django en développement

php中世界最好的语言
php中世界最好的语言original
2018-02-26 09:17:101832parcourir

Cette fois, je vais vous apporter un résumé de l'expérience python Django en développement, quelles sont les précautions dans le développement python Django, comme suit Ceci est un cas pratique, jetons-y un coup d'œil.

Je suis entré en contact avec Django pour la première fois lorsque j'étais junior à l'université. Cela fait presque 4 ans que je n'utilise pas Django pour réaliser des projets. Mon préféré est en fait le framework ORM de Django. Les projets de l'entreprise sont séparés d'avant en arrière et il est très efficace d'utiliser Django pour le développement d'interfaces back-end.


Résumez ci-dessous quelques expériences de développement de Django. Parlons d’abord de quelques-uns des éléments les plus fondamentaux.

Utilisez virtualenv pour isoler l'environnement de développement

Utilisez pip pour gérer les dépendances du projet, principalement une petite astuce, utilisez pip freeze > et versionUtilisez le fichier .gitignore fourni par gitignore.io pour gérer les fichiers de base de code

Packaging et publication

Packaging et publication du projet

Docker

, le Dockerfile du projet Django est très simple :

Ce modèle Dockerfile peut couvrir 80% des projets Django.
FROM python:3.5
COPY ./requirements.txt /src
WORKDIR /src
RUN pip install -r requirements.txt
COPY . /src
EXPOSE
CMD uwsgi --http :--wsgi-file<path/to/wsgi.py>

Configuration du journal

Depuis que j'utilise Docker, j'ai renoncé à écrire le journal

dans le fichier

et l'ai écrit directement sur la sortie standard.

   
# settings.py 
# ...
LOGGING = {
    &#39;version&#39;: 1,
    &#39;disable_existing_loggers&#39;: False,
    &#39;formatters&#39;: {
        &#39;verbose&#39;: {
            &#39;format&#39;: &#39;[application] %(levelname)s %(asctime)s %(module)s %(message)s&#39;
        }
    },
    &#39;handlers&#39;: {
        &#39;console&#39;: {
            &#39;level&#39;: &#39;DEBUG&#39;,
            &#39;class&#39;: &#39;logging.StreamHandler&#39;,
            &#39;stream&#39;: sys.stdout,
            &#39;formatter&#39;: &#39;verbose&#39;
        },
    },
    &#39;loggers&#39;: {
        &#39;app&#39;: {
            &#39;handlers&#39;: [&#39;console&#39;],
            &#39;level&#39;: &#39;DEBUG&#39;,
            &#39;propagate&#39;: True,
        },
    },
}


La nouvelle version d'uwsgi peut déjà collecter les journaux d'applications Web et les afficher sur la sortie standard. Si vous devez collecter et gérer des journaux, vous pouvez utiliser l'outil de collecte de journaux Docker pour collecter directement les journaux du conteneur Docker.

Tests automatisés

Comme il s'agit d'un projet purement back-end, les ingénieurs peuvent tester leur propre code grâce à des tests automatisés. Django lui-même fournit un bon support pour les tests. Vous pouvez utiliser

sqlite

pour créer une base de données de test et le cache basé sur la mémoire n'augmentera pas la dépendance vis-à-vis des autres systèmes. Développez avec moins d’effort. En plus d'écrire du code de test automatisé, vous devez également être capable de compter la couverture des tests. Actuellement, nous utilisons l'outil cover.py Pour être honnête, il n'est pas aussi facile à utiliser qu'Istanbul de

node.js

, et le rapport de sortie n'est pas aussi détaillé et facile à lire qu'Istanbul. Cependant, cela reste utile pour vérifier le « code mort ». Test du code http

Certains projets doivent se connecter à davantage de systèmes tiers, tels que l'authentification WeChat, le paiement, les SMS et d'autres systèmes courants, et il peut y avoir d'autres systèmes dans les entreprises verticales champs. Cette partie du code d'accueil de l'interface doit également être incluse dans le test. Après tout, Python est un langage de script et le code est sujet aux erreurs.

Ceci utilise généralement le module de réponses pour simuler les requêtes http.

Tâches chronométrées

Certains projets Django doivent effectuer des tâches chronométrées. Tout d’abord, n’utilisez jamais la crontab intégrée à Linux. Le principal problème est que le coût de maintenance est élevé, et cette configuration risque d'être oubliée un jour.

Notre méthode actuelle consiste à utiliser la fonction de Django Command pour encapsuler les tâches planifiées dans une commande. Exécutez un planificateur dans cette commande. Tout comme ce qui suit :

Si vous avez des questions à ce sujet, vous pouvez me les poser à tout moment. J'ai effectué des recherches approfondies sur les méthodes d'apprentissage, la planification systématique de l'apprentissage et l'efficacité de l'apprentissage. j'espère que cela pourra aider tout le monde à éviter les détours. Les trois premiers du groupe d'échange de débutants Python sont : 463, les trois du milieu sont : 024 et les trois derniers sont : 091
import schedule
from django.core.management.base import BaseCommand
class Command(BaseCommand):
    def handle(self, *args, **kwargs):
        schedule.every(45).minutes.do(do_this)
        schedule.every().day.at(&#39;04:00&#39;).do(do_that)
        while True:
            schedule.run_pending()
            time.sleep(1)

Je pense que vous maîtrisez la méthode après avoir lu ces cas. Veuillez faire attention pour en savoir plus. des choses passionnantes. Autres articles connexes sur le site Web chinois de php !

Lecture connexe :

vue css animation


Solution à l'écart entre les balises d'image et de vue


Pourquoi les emplacements sont-ils utilisés dans les sous-composants


Comment utiliser getBoundingClientRect() pour implémenter la fixation par défilement des conteneurs div

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:animation css vueArticle suivant:animation css vue