Heim Backend-Entwicklung Python-Tutorial Warum sollten wir eine gute Verzeichnisstruktur entwerfen?

Warum sollten wir eine gute Verzeichnisstruktur entwerfen?

Jul 20, 2017 pm 03:50 PM
python 目录

Beim Entwerfen einer Website sollten Sie im Voraus einen Ordner auf der Festplatte Ihres Computers als Ausgangspunkt für Ihre Arbeit erstellen und dann mehrere Unterordner unter dem Ordner erstellen, um eine sinnvolle Verzeichnisstruktur zu bilden, damit verschiedene Arten von Die Dateien werden auf der Website gespeichert.
Die Struktur des Verzeichnisses ist ein Problem, das beim Erstellen einer Website oft übersehen wird. Selbst der Verzeichnisname ist im Nachhinein leicht zu finden, auch wenn er nicht mehr weiß, warum dieses Verzeichnis erstellt wurde . Welche Art von Dateien werden gespeichert? Streng genommen werden die Besucher kein klares Gefühl über die Qualität der Verzeichnisstruktur haben, aber sie wird einen wichtigen Einfluss auf die Pflege der Website selbst und die Erweiterung und Transplantation zukünftiger Inhalte haben.

Warum sollten wir die Verzeichnisstruktur entwerfen?

„Projektverzeichnisstruktur entwerfen“ ist dasselbe wie „Codierung“. Stil“ „Das Gleiche ist eine Frage des persönlichen Stils. Es gab schon immer zwei Einstellungen zu dieser Stilnorm:

1. Ein Schülertyp glaubt, dass diese persönliche Stilfrage „irrelevant“ ist. Der Grund dafür ist, dass Stilprobleme überhaupt kein Problem darstellen, solange das Programm funktioniert das Programm effizienter;

Ich neige eher zu Letzterem, weil ich ein direktes Opfer der Gedanken und Verhaltensweisen der ersteren bin. Ich habe einmal ein Projekt gepflegt, das sehr schwer zu lesen war. Die Implementierungslogik war nicht kompliziert, aber es dauerte sehr lange, bis ich verstand, was es ausdrücken wollte. Seitdem habe ich persönlich sehr hohe Anforderungen an die Verbesserung der Lesbarkeit und Wartbarkeit des Projekts. „Projektverzeichnisstruktur“ gehört eigentlich zur Kategorie „Lesbarkeit und Wartbarkeit“. Wir entwerfen eine Verzeichnisstruktur auf klarer Ebene, um die folgenden zwei Punkte zu erreichen:

 1. Hohe Lesbarkeit: Personen Wer mit dem Code dieses Projekts nicht vertraut ist, kann die Verzeichnisstruktur auf einen Blick verstehen und wissen, welches Programmstartskript sich befindet, wo sich das Testverzeichnis befindet, wo sich die Konfigurationsdatei befindet usw. Dadurch können Sie das Projekt sehr schnell verstehen.

2. Hohe Wartbarkeit: Nach der Definition der Organisationsregeln kann der Betreuer klar erkennen, welche neuen Dateien und Codes in welchem ​​Verzeichnis hinzugefügt werden sollen es platziert werden? Der Vorteil besteht darin, dass die Projektstruktur mit der Zeit, wenn die Größe des Codes/der Konfiguration zunimmt, nicht unübersichtlich wird und gut organisiert bleibt.

Daher halte ich es für notwendig, eine klare und hierarchische Verzeichnisstruktur beizubehalten. Darüber hinaus ist die Organisation eines guten Projektverzeichnisses eigentlich eine sehr einfache Angelegenheit.

Verzeichnisorganisation

Es gibt bereits einige Ideen, wie man eine bessere Python-Projektverzeichnisstruktur organisieren kann Struktur. In dieser Frage zu Stackoverflow können Sie alle Diskussionen zur Python-Verzeichnisstruktur sehen.

Was hier gesagt wird, ist schon sehr gut. Ich werde das Rad nicht neu erfinden und verschiedene Methoden auflisten.

Angenommen, Ihr Projekt heißt foo, schlage ich vor, dass die bequemste und schnellste Verzeichnisstruktur ausreicht:

 

Foo/

  |-- bin/

    | |-- foo

  |

  |-- foo/

    | |-- tests/

      | | |-- __init__.py

      | | |-- test_main.py

    | |

    | |-- __init__.py

    | |-- main.py

  |-- docs/

    | |-- conf.py

    | |-- abc.rst

    |

  |-- setup.py

  |-- requirements.txt

  |-- README

Eine kurze Erklärung:

1. bin/: Speichern Sie einige ausführbare Dateien des Projekts, natürlich können Sie es script/ nennen oder so ähnlich

 2. foo/: Speichern Sie den gesamten Quellcode des Projekts. (1) Alle Module und Pakete im Quellcode sollten in diesem Verzeichnis abgelegt werden. Platzieren Sie es nicht im obersten Verzeichnis. (2) Sein Unterverzeichnis tests/ speichert Unit-Testcode; (3) Der Eintrag des Programms heißt am besten main.py;

 3. docs/: speichert einige Dokumente

 4.setup.py: Installations-, Bereitstellungs- und Verpackungsskripte;

 5.requirements.txt: Externe Python-Pakete, die Softwareabhängigkeiten speichern Liste;

 6.README: Projektbeschreibungsdokument.

Darüber hinaus bieten einige Pläne mehr Inhalte. Zum Beispiel LICENSE.txt, ChangeLog.txt Dateien usw., ich habe sie hier nicht aufgelistet, da diese Dinge hauptsächlich benötigt werden, wenn das Projekt Open Source ist. Wenn Sie eine Open-Source-Software schreiben möchten, können Sie sich auf diesen Artikel zum Organisieren von Verzeichnissen beziehen.

 Über den Inhalt von README

Ich denke, das ist ein Dokument, das jedes Projekt haben sollte

Der Zweck besteht darin, die Informationen des Projekts kurz zu beschreiben und den Lesern ein schnelles Verständnis des Projekts zu ermöglichen.

Folgende Dinge müssen erläutert werden:

1. Softwarepositionierung, die Grundfunktionen der Software;

 2. Methoden zum Ausführen des Codes: Installationsumgebung, Startbefehle usw.;

 3. Kurze Gebrauchsanweisung; >

 4 .Beschreibung der Codeverzeichnisstruktur, die die Grundprinzipien der Software detaillierter erklären kann

 5. Beschreibung häufig gestellter Fragen.

Ich denke, die oben genannten Punkte sind besser . Da in den frühen Phasen der Softwareentwicklung der oben genannte Inhalt möglicherweise unklar ist oder sich während des Entwicklungsprozesses ändert, ist es nicht erforderlich, zu Beginn alle Informationen zu vervollständigen. Aber wenn das Projekt abgeschlossen ist, muss ein solches Dokument geschrieben werden.

Sie können sich auf die Schreibmethode von Readme im Redis-Quellcode beziehen, die die Redis-Funktion und die Quellcodestruktur kurz, aber klar beschreibt.

READMEÜber require.txt und setup.py

Setup.py

Im Allgemeinen verwenden Sie

, um Code-Paket-, Installations- und Bereitstellungsprobleme zu verwalten. Die branchenübliche Schreibweise besteht darin, diese Dinge mit dem beliebten Paketierungstool setuptools von Python zu verwalten. Dieser Ansatz wird häufig in Open-Source-Projekten verwendet. Der Kerngedanke hierbei ist jedoch nicht, standardisierte Tools zur Lösung dieser Probleme zu verwenden, sondern zu sagen, dass

ein Projekt über ein Installations- und Bereitstellungstool verfügen muss, das die Umgebung und den Code schnell und einfach auf einer neuen Maschine installieren kann . Stellen Sie das Programm bereit und führen Sie es aus.

Ich bin schon einmal durch diese Falle gegangen.

setup.py Als ich anfing, Projekte in Python zu schreiben, wurde der Prozess der Installation der Umgebung, der Bereitstellung des Codes und der Ausführung des Programms vollständig manuell durchgeführt:

1. Bei der Installation der Umgebung vergesse ich in letzter Zeit oft, ein neues Python-Paket hinzuzufügen. Dadurch geht das Programm schief, sobald es online ausgeführt wird 🎜> 2. Das Problem der Versionsabhängigkeit von Python-Paketen: Manchmal verwenden wir eine Version des Python-Pakets, aber das offizielle Paket ist bereits das neueste, und durch die manuelle Installation wird möglicherweise das falsche installiert >

3. Wenn es viele abhängige Pakete gibt, ist es sehr zeitaufwändig, diese Abhängigkeiten einzeln zu installieren

4. Wenn neue Schüler mit dem Schreiben von Projekten beginnen Es ist sehr mühsam, das Programm auszuführen, da Sie häufig vergessen, wie verschiedene Abhängigkeiten installiert werden.

 

Sie können diese Dinge automatisieren, um die Effizienz zu verbessern und die Fehlerwahrscheinlichkeit zu verringern. „Automatisieren Sie komplexe Dinge, und Dinge, die automatisiert werden können, müssen automatisiert werden.“ Die Dokumentation von setuptools ist relativ umfangreich. Wenn Sie neu darin sind, ist es möglicherweise nicht einfach, den Einstiegspunkt zu finden. Der Weg, Technologie zu lernen, besteht darin, zu sehen, wie andere sie verwenden. Sie können sich auf ein Web-Framework in Python beziehen und erfahren, wie Flask geschrieben ist: setup.py.

Natürlich ist es keine schlechte Idee, statt einfach ein eigenes Installationsskript (setup.py) zu schreiben.

deploy.sh require.txtsetup.py

Der Zweck dieser Datei ist:

1. Praktisch für Entwickler, um Softwarepaketabhängigkeiten beizubehalten. Fügen Sie dieser Liste während des Entwicklungsprozesses neue Pakete hinzu, um zu vermeiden, dass beim

Installieren von Abhängigkeiten Softwarepakete fehlen.

 2. Für Leser ist es praktisch, zu wissen, welche Python-Pakete in verwendet werden Projekt. setup.py

Das Format dieser Datei besteht darin, dass jede Zeile eine Paketabhängigkeitsbeschreibung enthält, normalerweise im Format

. Voraussetzung ist, dass dieses Format an erkannt werden kann. damit es einfach sein kann Verwenden Sie , um alle Python-Paketabhängigkeiten zu installieren. Spezifische Formatanweisungen: Klicken Sie hier.

flask>=0.10 Informationen zur Verwendung der Konfigurationsdatei pippip install -r requirements.txt

Beachten Sie, dass

in der obigen Verzeichnisstruktur nicht im Quellcodeverzeichnis abgelegt wird . Legen Sie es stattdessen im Verzeichnis ab:

Viele Projekte verwenden Konfigurationsdateien wie folgt: conf.pydocs/

1. Die Konfigurationsdatei ist geschrieben in In einer oder mehreren Python-Dateien, wie zum Beispiel conf.py hier;

2. Welches Modul im Projekt verwendet diese Konfigurationsdatei direkt in Form von

Verwenden Sie die Konfiguration in Code.

Ich bin mit diesem Ansatz nicht einverstanden: import conf

1. Dies erschwert Unit-Tests (da das Modul auf externer Konfiguration basiert);

2. Andererseits dient die Konfigurationsdatei als Schnittstelle für den Benutzer zur Steuerung des Programms, und der Benutzer sollte den Pfad der Datei frei angeben können

3. Die Wiederverwendbarkeit von Programmkomponenten ist zu schlecht, da die meisten Module auf die Datei

Daher denke ich, dass der bessere Weg, die Konfiguration zu verwenden, ist:

conf.py 1. Die Konfiguration von Modulen kann flexibel konfiguriert werden und wird nicht durch externe Konfigurationsdateien beeinflusst ;

2. Auch die Konfiguration des Programms ist flexibel steuerbar.

Was diese Idee unterstützen kann, ist, dass Schüler, die Nginx und MySQL verwendet haben, wissen, dass Nginx- und MySQL-Programme Benutzerkonfigurationen frei angeben können.

Daher sollten Konfigurationsdateien nicht direkt import conf im Code verwendet werden. Das conf.py in der obigen Verzeichnisstruktur ist ein Konfigurationsbeispiel und keine fest codierte Konfigurationsdatei, auf die im Programm direkt verwiesen wird. Sie können das Programm den Konfigurationsinhalt lesen lassen, indem Sie den Konfigurationspfad für den Startparameter main.py angeben. Natürlich können Sie das conf.py hier in einen ähnlichen Namen ändern, z. B. settings.py. Oder Sie können auch Inhalte in anderen Formaten zum Schreiben von Konfigurationsdateien verwenden, z. B. settings.yaml und dergleichen.

Im Modul kann das Aufrufproblem verschiedener Dateien nur im Verzeichnis derselben Ebene realisiert werden. Wenn sie sich in Modulen unterschiedlicher Ebene befinden, müssen Umgebungsvariablen so konfiguriert werden Die Programme können auf derselben Ebene unter der Verzeichnisstruktur ausgeführt werden.

Die Schritte zum Konfigurieren von Umgebungsvariablen lauten wie folgt:

 '''Konfigurieren Sie Umgebungsvariablen, weil sie es sind in verschiedenen Verzeichnissen Zum Importieren müssen Sie zunächst Umgebungsvariablen konfigurieren, damit sich Programme gegenseitig im selben Verzeichnisstatus aufrufen können'''
import sys,os
''os .path.abspath ist der absolute Pfad zur Datei '''
 data = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__ ) )))
print(data)
sys.path.append(data)

Importieren Sie zunächst die Module sys, os, __file__, um den Dateinamen der aktuellen Datei abzurufen. os.path.abspath() dient dazu, den absoluten Pfad der aktuellen Datei abzurufen. os.path.dirname() dient dazu, den übergeordneten Pfad des aktuellen Dateipfads abzurufen. sys.path.append() dient dazu, den aktuellen Dateipfad zum Dateipfad hinzuzufügen, um die Konfiguration des Dateipfads zu realisieren der Anruf in der gleichen Ebene.

 

Verschiedene Funktionsmodule sind in verschiedenen Dateien gespeichert Ein Programm-Master-Eintrag. Wenn wir den Haupteingang aufrufen, ist die Umgebungsvariable tatsächlich der Ort des Haupteingangs des Programms. In Zukunft müssen Sie Code auf standardisierte Weise schreiben und versuchen, zwischen verschiedenen Modulen aufzurufen. Schauen wir uns einen einfachen Web-Framework-Typ an:

Das Obige ist zunächst ein DJ-Framework :

 --Backend-Frontend, zum Speichern von Datenbanküberprüfungsmodulen und Logikmodulen

 --Konfigurationsdatei-Konfigurationsmodul, verwendet zum Speichern von Dateikonfigurationsinformationen;

--frontend ist das Frontend;

--user_main.py ist der Haupteingang des Programms und das Ausführungsmodul des Programms.

Das obige ist der detaillierte Inhalt vonWarum sollten wir eine gute Verzeichnisstruktur entwerfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist der Grund, warum PS immer wieder Laden zeigt? Was ist der Grund, warum PS immer wieder Laden zeigt? Apr 06, 2025 pm 06:39 PM

PS "Laden" Probleme werden durch Probleme mit Ressourcenzugriff oder Verarbeitungsproblemen verursacht: Die Lesegeschwindigkeit von Festplatten ist langsam oder schlecht: Verwenden Sie Crystaldiskinfo, um die Gesundheit der Festplatte zu überprüfen und die problematische Festplatte zu ersetzen. Unzureichender Speicher: Upgrade-Speicher, um die Anforderungen von PS nach hochauflösenden Bildern und komplexen Schichtverarbeitung zu erfüllen. Grafikkartentreiber sind veraltet oder beschädigt: Aktualisieren Sie die Treiber, um die Kommunikation zwischen PS und der Grafikkarte zu optimieren. Dateipfade sind zu lang oder Dateinamen haben Sonderzeichen: Verwenden Sie kurze Pfade und vermeiden Sie Sonderzeichen. Das eigene Problem von PS: Installieren oder reparieren Sie das PS -Installateur neu.

Wie löst ich das Problem des Ladens beim Starten von PS? Wie löst ich das Problem des Ladens beim Starten von PS? Apr 06, 2025 pm 06:36 PM

Ein PS, der beim Booten auf "Laden" steckt, kann durch verschiedene Gründe verursacht werden: Deaktivieren Sie korrupte oder widersprüchliche Plugins. Eine beschädigte Konfigurationsdatei löschen oder umbenennen. Schließen Sie unnötige Programme oder aktualisieren Sie den Speicher, um einen unzureichenden Speicher zu vermeiden. Upgrade auf ein Solid-State-Laufwerk, um die Festplatte zu beschleunigen. PS neu installieren, um beschädigte Systemdateien oder ein Installationspaketprobleme zu reparieren. Fehlerinformationen während des Startprozesses der Fehlerprotokollanalyse anzeigen.

Wie beschleunigt man die Ladegeschwindigkeit von PS? Wie beschleunigt man die Ladegeschwindigkeit von PS? Apr 06, 2025 pm 06:27 PM

Das Lösen des Problems des langsamen Photoshop-Startups erfordert einen mehrstufigen Ansatz, einschließlich: Upgrade-Hardware (Speicher, Solid-State-Laufwerk, CPU); Deinstallieren veraltete oder inkompatible Plug-Ins; Reinigen des Systemmülls und übermäßiger Hintergrundprogramme regelmäßig; irrelevante Programme mit Vorsicht schließen; Vermeiden Sie das Öffnen einer großen Anzahl von Dateien während des Starts.

Wie löste ich das Problem des Ladens, wenn die PS die Datei öffnet? Wie löste ich das Problem des Ladens, wenn die PS die Datei öffnet? Apr 06, 2025 pm 06:33 PM

Das Laden von Stottern tritt beim Öffnen einer Datei auf PS auf. Zu den Gründen gehören: zu große oder beschädigte Datei, unzureichender Speicher, langsame Festplattengeschwindigkeit, Probleme mit dem Grafikkarten-Treiber, PS-Version oder Plug-in-Konflikte. Die Lösungen sind: Überprüfen Sie die Dateigröße und -integrität, erhöhen Sie den Speicher, aktualisieren Sie die Festplatte, aktualisieren Sie den Grafikkartentreiber, deinstallieren oder deaktivieren Sie verdächtige Plug-Ins und installieren Sie PS. Dieses Problem kann effektiv gelöst werden, indem die PS -Leistungseinstellungen allmählich überprüft und genutzt wird und gute Dateimanagementgewohnheiten entwickelt werden.

Ist das langsame PS -Laden mit der Computerkonfiguration zusammen? Ist das langsame PS -Laden mit der Computerkonfiguration zusammen? Apr 06, 2025 pm 06:24 PM

Der Grund für die langsame PS -Belastung ist der kombinierte Einfluss von Hardware (CPU, Speicher, Festplatte, Grafikkarte) und Software (System, Hintergrundprogramm). Zu den Lösungen gehören: Aktualisieren von Hardware (insbesondere Ersetzen von Solid-State-Laufwerken), Optimierung der Software (Reinigung von Systemmüll, Aktualisierung von Treibern, Überprüfung von PS-Einstellungen) und Verarbeitung von PS-Dateien. Regelmäßige Computerwartung kann auch dazu beitragen, die PS -Laufgeschwindigkeit zu verbessern.

Wie kann man das Problem des Ladens lösen, wenn PS immer zeigt, dass es geladen wird? Wie kann man das Problem des Ladens lösen, wenn PS immer zeigt, dass es geladen wird? Apr 06, 2025 pm 06:30 PM

PS -Karte ist "Laden"? Zu den Lösungen gehören: Überprüfung der Computerkonfiguration (Speicher, Festplatte, Prozessor), Reinigen der Festplattenfragmentierung, Aktualisierung des Grafikkartentreibers, Anpassung der PS -Einstellungen, der Neuinstallation von PS und der Entwicklung guter Programmiergewohnheiten.

Kann der PDF -Export von PS in Chargen exportiert werden? Kann der PDF -Export von PS in Chargen exportiert werden? Apr 06, 2025 pm 04:54 PM

Es gibt drei Möglichkeiten, PDFs in Stapeln auf PS zu exportieren: Verwenden Sie PS -Aktionsfunktionen: Aufzeichnung und Öffnen Sie Dateien und exportieren Sie PDF -Aktionen sowie Aktionen in einer Schleife. Mit Hilfe der Software von Drittanbietern: Verwenden Sie Software oder Automatisierungs-Tools für Dateiverwaltung, um die Eingabe- und Ausgabeordner anzugeben und das Dateinamenformat festzulegen. Verwenden Sie Skripte: Schreiben Sie Skripte, um die Batch -Exportlogik anzupassen. Programmierkenntnisse sind jedoch erforderlich.

Wie kontrolliert PS -Federn die Weichheit des Übergangs? Wie kontrolliert PS -Federn die Weichheit des Übergangs? Apr 06, 2025 pm 07:33 PM

Der Schlüssel zur Federkontrolle liegt darin, seine allmähliche Natur zu verstehen. PS selbst bietet nicht die Möglichkeit, die Gradientenkurve direkt zu steuern, aber Sie können den Radius und die Gradientenweichheit flexius durch mehrere Federn, Matching -Masken und feine Selektionen anpassen, um einen natürlichen Übergangseffekt zu erzielen.

See all articles