[PYTHON] So entwickeln Sie eine Cart-App mit Django

Dieses Tutorial ist der zweite Artikel in einer Reihe zum Erstellen von ** E-Commerce ** -Apps mithilfe des ** Django ** -Webframeworks. Wenn Sie das erste Tutorial verpasst haben, finden Sie es hier online. [Entwickeln von Webanwendungen in der Alibaba Cloud mithilfe des Django-Frameworks](https://www.alibabacloud.com/blog/how-to-develop-web-applications-on-alibaba-cloud-with-django -framework_594265? spm = a2c65.11461447.0.0.25d054951cPDkx)

1. Einleitung

Mit dem Aufkommen neuer Daten und neuer Technologieprodukte muss jedes Unternehmen nun seine eigene E-Commerce-Plattform aufbauen und diese direkt in die Website des Unternehmens integrieren. Das hier vorgestellte Tutorial soll Ihnen zeigen, wie Sie die Leistung des Django-Frameworks nutzen können, um ein Cart-System zu erstellen.

2. Umfang unseres Projekts

** 2.1. Projektdetails ** Das Projekt, das wir bauen, ist eine E-Commerce-Anwendung, mit der Menschen Waren kaufen und verkaufen können. Aus Gründen der Flexibilität und Wartbarkeit ist das Projekt in drei unabhängige Apps unterteilt: Kern-App (entwickelt im vorherigen Tutorial), Cart-App (entwickelt in diesem Tutorial), Zahlungs-App (entwickelt im nächsten Tutorial) ..

** 2.2. Wagenanwendung ** Die Warenkorbanwendung wird zum Verwalten des Kauf- und Verkaufsprozesses sowie zum Verwalten des Warenkorbs selbst und der Warenkorbartikel im Warenkorb (Hinzufügen, Aktualisieren, Löschen von Warenkorbartikeln) verwendet.

Die spezifischen Elemente, die hier verwaltet werden, sind:

** 2.3. Einstellungen der Entwicklungsumgebung ** Wir beginnen damit, den Quellcode für ein Projekt zu erhalten, das bereits online ist.

$ cd ~/projects                 # Switch to your project folder on Home directory
$ git clone https://github.com/binel01/buyandsell.git

Hinweis: Nach der Ausgabe dieses Befehls wird im Projektverzeichnis ein Ordner mit dem Namen buyandsell erstellt, der den gesamten Quellcode für Ihr Projekt enthält.

$ pip install virtualenv

--Erstelle venv

$ virtualenv venv
$ source venv\bin\activate
(venv)$ pip install -r requirements.txt
(venv)$ python manage.py migrate

--Erstelle einen Superuser

(venv)$ python manage.py createsuperuser  # then follow the instructions

--Test wenn alles funktioniert.

(venv)$ python manage.py runserver

3. Entwicklung der Warenkorb-App

Wir werden mit diesem Fluss fortfahren.

--App-Initialisierung

3.1. App-Initialisierung

Zunächst müssen Sie eine neue Anwendung mit dem Namen ** cart ** erstellen und zur Einstellungsdatei ** settings.py ** hinzufügen.

(venv)$ django-admin startapp cart

Dieser Befehl erstellt einen neuen Ordner mit dem Namen cart, der den Quellcode für die Cart-Anwendung enthält.

Fügen Sie die Warenkorb-App zur Datei settings.py hinzu.

...
INSTALLED_APPS = [
    ...
    cart,
    ...
] 
...

3.2. Modelldefinition

Wie oben erwähnt, unterstützt diese App die folgenden Modelle.

from django.db import models
from django.contrib.auth.models import User
from datetime import datetime

from core.models import Product

class Cart(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    created_at = models.DateTimeField(default=datetime.now)

class CartItem(models.Model):
    product = models.ForeignKey(Product, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=1)
    price_ht = models.FloatField(blank=True)
    cart = models.ForeignKey('Cart', on_delete=models.CASCADE)

    TAX_AMOUNT = 19.25

    def price_ttc(self):
        return self.price_ht * (1 + TAX_AMOUNT/100.0)

    def __str__(self):
        return  self.client + " - " + self.product

3.3. Definition anzeigen

** 3.3.1. Ansicht ** Um die dem Benutzer präsentierten Daten zu verwalten, müssen wir eine Ansicht definieren, die als unsere Kontrolle fungiert.

Unten finden Sie die ** views.py ** -Dateien, die sich aus den Datenbankmodellen ** Cart ** und ** CartItem ** ergeben.

from django.shortcuts import render
from django.views.generic import DetailView, ListView, CreateView, UpdateView, DeleteView

from .models import Cart, CartItem

##-------------- Cart Views --------------------------------------
class DetailCart(DetailView):
    model = Cart
    template_name='cart/detail_cart.html'

class ListCart(ListView):
    model = Cart
    context_object_name = 'carts'
    template_name='cart/list_carts.html'

class CreateCart(CreateView):
    model = Cart
    template_name = 'cart/create_cart.html'

class Updatecart(UpdateView):
    model = Cart
    template_name = 'cart/update_cart.html'

class DeleteCart(DeleteView):
    model = Cart
    template_name = 'cart/delete_cart.html'


##-------------- CartItem Views --------------------------------------
class DetailCartItem(DetailView):
    model = CartItem
    template_name='cartitem/detail_cartitem.html'

class ListCartItem(ListView):
    model = CartItem
    context_object_name = 'cartitems'
    template_name='cartitem/list_cartitems.html'

class CreateItemCart(CreateView):
    model = CartItem
    template_name = 'cartitem/create_cartitem.html'

class UpdateCartItem(UpdateView):
    model = CartItem
    template_name = 'cartitem/update_cartitem.html'

class DeleteCartItem(DeleteView):
    model = Cart
    template_name = 'cartitem/delete_cartitem.html'

3.4 Definition der URL-Route

Hier ist der URL-Stamm, der in buyandsell / cart / urls.py definiert ist.

from django.urls import path, include

from . import views

# Cart Urls
urlpatterns = [
    path('cart/', views.ListCart, name='list-carts'),
    path('cart/<int:pk>/', views.DetailCart.as_view(), name='detail-cart'),
    path('cart/create/', views.CreateCart.as_view(), name='create-cart'),
    path('cart/<int:pk>/update/', views.Updatecart.as_view(), name='update-cart'),
    path('cart/<int:pk>/delete/', views.DeleteCart.as_view(), name='delete-cart'),
]

# CartItem Urls
urlpatterns += [
    path('cartitem/', views.ListCartItem.as_view(), name='list-cartitem'),
    path('cartitem/<int:pk>/', views.DetailCartItem.as_view(), name='detail-cartitem'),
    path('cartitem/create/', views.CreateCartItem.as_view(), name='create-cartitem'),
    path('cartitem/<int:pk>/update/', views.UpdateCartItem.as_view(), name='update-cartitem'),
    path('cartitem/<int:pk>/delete/', views.DeleteCartItem.as_view(), name='delete-cartitem'),
]

3.5 Definition der Administratoroberfläche

Wenn Sie eine Webanwendung erstellen, um die Geschäftsanforderungen Ihres Kunden zu erfüllen, erstellen Sie im Allgemeinen auch eine Administratoranwendung, die die in der Datenbank gespeicherten Daten, Berechtigungen, Berechtigungen und Rollen verwaltet. Django vereinfacht das Leben von Webentwicklern, da dies bereits standardmäßig erfolgt.

Um die Administrationsoberfläche zu konfigurieren, müssen Sie die Datei ** admin.py ** ändern, um sie für die Verwendung des Modells zu konfigurieren.

Die resultierende ** admin.py ** -Datei lautet:

from django.contrib import admin

# Register your models here.
class CartAdmin(admin.ModelAdmin):
    pass

class CartItemAdmin(admin.ModelAdmin):
    pass

3.6. Testen, ob alles funktioniert

(venv)$ cd buyansell
(venv)$ python manage.py runserver

Bewegen Sie dann Ihren Browser an diesen Ort.

http://localhost:8000

4. Fazit

Am Ende dieses Tutorials sollten Sie wissen, wie Sie mit dem Erstellen Ihrer Anwendung mit dem Django-Framework beginnen. Genauer gesagt haben Sie die Modelle, Ansichten und Vorlagen von Django kennengelernt.

Der Quellcode für die in diesem Tutorial verwendete Anwendung lautet https://github.com/binel01/buyandsell/tree/master/core auf der GitHub-Seite. Es befindet sich im Kern? Spm = a2c65.11461447.0.0.25d054951cPDkx).

Der nächste Teil des Tutorials in dieser Reihe zeigt Ihnen, wie Sie eine Warenkorbanwendung zum Verwalten von Produktverkäufen entwickeln.

Recommended Posts

So entwickeln Sie eine Cart-App mit Django
Verfahren zur Erstellung plattformübergreifender Apps mit kivy
Schritte zur Entwicklung von Django mit VSCode
Wie fange ich mit Django an?
So stellen Sie eine mit Flask erstellte Web-App für Heroku bereit
So führen Sie eine arithmetische Verarbeitung mit der Django-Vorlage durch
So fügen Sie ein Paket mit PyCharm hinzu
Ich habe versucht, das Entwicklungsstartverfahren von Django kurz zusammenzufassen
So stellen Sie eine Django-App in nur 5 Minuten für Heroku bereit
Lesen einer CSV-Datei mit Python 2/3
So senden Sie eine Nachricht mit Curl an LINE
So zeichnen Sie ein 2-Achsen-Diagramm mit Pyplot
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
So implementieren Sie "named_scope" von RubyOnRails mit Django
So erstellen Sie eine Rest-API in Django
Ich möchte eine Django-App auf Heroku hochladen
Eine neue Form der App, die mit GitHub funktioniert: So erstellen Sie GitHub-Apps
So konvertieren / wiederherstellen Sie einen String mit [] in Python
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
So erstellen Sie ein Untermenü mit dem Plug-In [Blender]
(Python) Versuchen Sie, eine Webanwendung mit Django zu entwickeln
So stellen Sie eine Django-Anwendung in der Alibaba-Cloud bereit
So erhalten Sie einen angemeldeten Benutzer mit Djangos forms.py
So konvertieren Sie ein Klassenobjekt mit SQLAlchemy in ein Wörterbuch
Wie man ein Schießspiel mit toio macht (Teil 1)
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
So erstellen Sie eine Django (Python) -Umgebung auf Docker
Schritte von der Installation von Python 3 bis zur Erstellung einer Django-App
Todo-App mit Django erstellen ③ Aufgabenlistenseite erstellen
Verwendung von Django mit Google App Engine / Python
Übergang zum Update-Bildschirm mit dem Django-Tag
Stellen Sie die mit PTVS erstellte Django-App in Azure bereit
Für mich als Django-Anfänger (1) -Erstellen eines Projekts / einer App-
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
So führen Sie Django unter IIS auf einem Windows-Server aus
So verweisen Sie auf statische Dateien in einem Django-Projekt
Für mich als Django-Anfänger (4) - Erstellen Sie eine Memo-App-
Todo-App mit Django erstellen ⑤ Funktion zum Bearbeiten von Aufgaben erstellen
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Stellen Sie eine mit Streamlit erstellte Web-App für Heroku bereit
So rufen Sie eine Funktion auf
Erstellen Sie eine Homepage mit Django
Wie aktualisiere ich mit SQLAlchemy?
Wie man mit Theano besetzt
Wie man ein Terminal hackt
Wie mit SQLAlchemy ändern?
So trennen Sie Zeichenfolgen mit ','
Wie man RDP auf Fedora31 macht
Wie man in Python entwickelt
Wie lösche ich mit SQLAlchemy?
Verwendung von Fixture in Django zur Eingabe von Beispieldaten für das Benutzermodell
Umgang mit statischen Dateien bei der Bereitstellung in der Produktion mit Django
So konvertieren Sie mit Python [Anwendung] von einem Array in ein Wörterbuch
So geben Sie ein Dokument im PDF-Format mit Sphinx aus
Empfehlung von Django, Bachstelze ~ Warum eine Website mit Python entwickeln ~
So überprüfen Sie das Verhalten von ORM mit einer Datei mit django
Ich möchte einen Blog-Editor mit dem Administrator von Django erstellen