• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • Django教程--- Django CRUD

    標簽: 公眾號文章  數據庫  python  mysql  django  java

    在這里插入圖片描述
    Django是一個基于Python的Web框架,它使您可以快速創建Web應用程序,而不會遇到通常在其他框架中會發現的所有安裝或替換問題。Django基于MVT(模型視圖模板)體系結構,并圍繞CRUD(創建,檢索,更新,刪除)操作展開。最好將CRUD解釋為構建Django的網絡應用程序的一種方法。通常,CRUD意味著對數據庫中的表執行創建,檢索,更新和刪除操作。讓我們討論一下CRUD的實際含義,

    在這里插入圖片描述
    創建 -在數據庫的表中創建或添加新條目。
    檢索 -以列表的形式(列表視圖)讀取,檢索,搜索或查看現有條目,或詳細檢索特定的條目(詳細視圖)
    更新 -更新或編輯數據庫表中的現有 常規
    刪除 –刪除,替換或刪除數據庫表中的現有替代

    Django CRUD(創建,檢索,更新,刪除)基于函數的視圖
    示例使用說明如何創建³³狀語從句:使用CRUD視圖。考慮一個名為的項目,其中geeksforgeeks有一個名為的應用geeks

    在擁有一個項目和一個應用程序之后,讓我們創建一個模型,我們將通過我們的視圖創建其模型。在geeks/models.py,

    # import the standard Django Model
    # from built-in library
    from django.db import models
       
    # declare a new model with a name "GeeksModel"
    class GeeksModel(models.Model): 
      
        # fields of the model
        title = models.CharField(max_length = 200)
        description = models.TextField()
      
        # renames the instances of the model
        # with their title name
        def __str__(self): 
            return self.title
    

    創建此模型后,我們需要運行兩個命令以便為同一數據庫創建數據庫

    Python manage.py makemigrations
    Python manage.py migrate
    現在,我們將為此模型創建一個Django ModelForm。有關modelform – Django ModelForm –從模型創建表單,請參閱本文。forms.py在geeks文件夾中創建一個文件,

    from django import forms
    from .models import GeeksModel
      
      
    # creating a form
    class GeeksForm(forms.ModelForm): 
      
        # create meta class
        class Meta: 
            # specify model to be used
            model = GeeksModel
      
            # specify fields to be used
            fields = [
                "title",
                "description",
            ]
    

    建立檢查
    如從用戶那里獲取輸入連接到其存儲在指定表中一樣。
    在geeks/views.py,

    from django.shortcuts import render
      
    # relative import of forms
    from .models import GeeksModel
    from .forms import GeeksForm
      
      
    def create_view(request): 
        # dictionary for initial data with
        # field names as keys
        context ={}
      
        # add the dictionary during initialization
        form = GeeksForm(request.POST or None)
        if form.is_valid():
            form.save()
              
        context['form']= form
        return render(request, "create_view.html", context)
    

    在中創建模板templates/create_view.html,

    <form method="POST" enctype="multipart/form-data"> 
      
        <!-- Security token -->
        {% csrf_token %}
      
        <!-- Using the formset -->
        {{ form.as_p }}
          
        <input type="submit" value="Submit"> 
    </form> 
    

    現在訪問http:// localhost:8000/

    檢索視圖
    檢索視圖基本上分為兩種視圖:詳細視圖和列表視圖。

    列表顯示
    列表視圖是指一種視圖(邏輯),用于按特定順序列出數據庫中表的所有或特定實例。它用于在單獨頁面上顯示多種類型的數據或查看(例如,電子商務頁面上的產品)。
    在極客/ views.py中,

    from django.shortcuts import render
      
    # relative import of forms
    from .models import GeeksModel
      
      
    def list_view(request): 
        # dictionary for initial data with
        # field names as keys
        context ={}
      
        # add the dictionary during initialization
        context["dataset"] = GeeksModel.objects.all()
              
        return render(request, "list_view.html", context)
    

    在中創建模板templates/list_view.html,

    <div class="main"> 
      
        {% for data in dataset %}.
      
        {{ data.title }}<br/> 
        {{ data.description }}<br/> 
        <hr/> 
      
        {% endfor %}
      
    </div> 
    

    現在訪問http:// localhost:8000/

    詳細視圖
    詳細信息視圖是一種視圖(邏輯),用于顯示數據庫中具有所有必要的詳細信息的表的特定實例。它用于在各個頁面或視圖上顯示多種類型的數據,例如用戶的個人資料。
    在geeks/views.py,

    from django.urls import path
      
    # importing views from views..py
    from .views import detail_view
      
    urlpatterns = [
        path('<id>', detail_view ),
    ]
    

    讓我們為此創建一個視圖和模板。在geeks/views.py,

    from django.shortcuts import render
      
    # relative import of forms
    from .models import GeeksModel
      
    # pass id attribute from urls
    def detail_view(request, id): 
        # dictionary for initial data with
        # field names as keys
        context ={}
      
        # add the dictionary during initialization
        context["data"] = GeeksModel.objects.get(id = id)
              
        return render(request, "detail_view.html", context)
    

    在中創建模板templates/Detail_view.html,

    <div class="main">
          
        <!-- Specify fields to be displayed -->
        {{ data.title }}<br/> 
        {{ data.description }}<br/> 
      
    </div> 
    

    讓我們檢查一下http:// localhost:8000/1上的內容。

    更新視圖
    更新視圖是一種視圖(邏輯),用于使用一些其他詳細信息從數據庫更新表的特定實例。它用作更新數據庫中的小腸,例如,更新geeksforgeeks上一個文章。
    在geeks/views.py,

    from django.shortcuts import (get_object_or_404,
                                  render,
                                  HttpResponseRedirect)
      
    # relative import of forms
    from .models import GeeksModel
    from .forms import GeeksForm
      
    # after updating it will redirect to detail_View
    def detail_view(request, id): 
        # dictionary for initial data with
        # field names as keys
        context ={}
       
        # add the dictionary during initialization
        context["data"] = GeeksModel.objects.get(id = id)
               
        return render(request, "detail_view.html", context)
      
    # update view for details
    def update_view(request, id): 
        # dictionary for initial data with
        # field names as keys
        context ={}
      
        # fetch the object related to passed id
        obj = get_object_or_404(GeeksModel, id = id)
      
        # pass the object as instance in form
        form = GeeksForm(request.POST or None, instance = obj)
      
        # save the data from the form and
        # redirect to detail_view
        if form.is_valid():
            form.save()
            return HttpResponseRedirect("/"+id)
      
        # add form dictionary to context
        context["form"] = form
      
        return render(request, "update_view.html", context)
    

    現在,在創建以下模板templates文件夾,
    在geeks/templates/update_view.html,

    <div class="main">
        <!-- Create a Form -->
        <form method="POST"> 
            <!-- Security token by Django -->
            {% csrf_token %}
      
            <!-- form as paragraph -->
            {{ form.as_p }}
      
            <input type="submit" value="Update"> 
        </form> 
      
    </div> 
    

    在geeks/templates/detail_view.html,

    <div class="main">
        <!-- Display attributes of instance -->
        {{ data.title }} <br/> 
        {{ data.description }}
    </div> 
    

    讓我們檢查是否一切正常,請訪問http:// localhost:8000/1/update。

    刪除查看
    刪除視圖是指從數據庫中刪除表的特定實例的視圖(邏輯)。它用于刪除數據庫中的壓縮,例如,刪除geeksforgeeks上一個文章。在geeks
    / views.py中

    from django.shortcuts import (get_object_or_404,
                                  render,
                                  HttpResponseRedirect)
      
    from .models import GeeksModel
      
      
    # delete view for details
    def delete_view(request, id): 
        # dictionary for initial data with
        # field names as keys
        context ={}
      
        # fetch the object related to passed id
        obj = get_object_or_404(GeeksModel, id = id)
      
      
        if request.method =="POST":
            # delete object
            obj.delete()
            # after deleting redirect to
            # home page
            return HttpResponseRedirect("/")
      
        return render(request, "delete_view.html", context)
    

    現在,一個URL映射到該視圖與正則表達式id,
    在geeks/urls.py

    from django.urls import path
      
    # importing views from views..py
    from .views import delete_view
    urlpatterns = [
        path('<id>/delete', delete_view ),
    ]
    

    用于刪除視圖的模板包括一個簡單的表單,用于確認用戶是否要刪除實例。在 geeks/templates/delete_view.html,

    <div class="main">
        <!-- Create a Form -->
        <form method="POST"> 
            <!-- Security token by Django -->
            {% csrf_token %}
            Are you want to delete this item ?
            <input type="submit" value="Yes" /> 
            <a href="/">Cancel </a> 
        </form> 
    </div> 
    

    一切就緒,現在讓我們檢查其是否正常運行,請訪問

    http:// localhost:8000/2/delete
    

    在這里插入圖片描述

    版權聲明:本文為qq_36772866原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/qq_36772866/article/details/106274763

    智能推薦

    django

    快速搞頁面,前端不是負擔 bootstrap 模板 快速搭建 框架 Django基礎 HTTP協議 定義和概述 工作原理 http請求協議 http響應協議 http請求/響應 請求方法 get 和 post http狀態碼 headers(general)() URL 1.1 簡單的web響應代碼 1.2 上傳文文件代碼 簡單爬蟲...

    Django

    Django概述 Django簡介 Django是一個開放源代碼的Web應用框架,由Python寫成 最初是被開發來用于管理勞倫斯出版集團旗下的一些以新聞內容為主的網站 2005年7月在BSD許可證下發布 框架介紹 Django 框架的核心組件有: 用于創建模型的對象關系映射 為最終用戶設計的完美管理界面 一流的 URL 設計 設計者友好的模板語言 緩存系統 MTV模式 Django的MTV模式本...

    django

    django 1、安裝 2、基本配置 創建django程序   python manage.py runserver 0.0.0.0   python manage.py startapp appname #新建app   python manage.py makemigrations #遷移數據   python manage.py migrate #同步到數據庫   python manage...

    Django

    Django的框架設計模式 MVC 設計模式 MVC 代表 Model-View-Controller(模型-視圖-控制器) 模式。 作用: 降低模塊間的耦合度(解耦) MVC M 模型層(Model), 主要用于對數據庫層的封裝 V 視圖層(View), 用于向用戶展示結果 C 控制(Controller ,用于處理請求、獲取數據、返回結果(重要) MVC模式如圖: MTV 模式 MTV 代表 ...

    Django

    目錄 常見的web框架MVC模型 MVC模型的簡介 MVC模型的原理 MVT模型 MVT模型的簡介 MVT模型的原理 Django Django官方文檔 Django2.0開發文檔 虛擬環境 什么是虛擬環境 創建虛擬環境 安裝虛擬環境 安裝虛擬語言環境拓展包 編輯 .bashrc文件 使用source .bashrc命令將 .bashrc文件生效 使用虛擬環境的命令 創建虛擬環境的命令 進入虛擬環...

    猜你喜歡

    Django

    一、Django簡介 Django官網:https://www.djangoproject.com/ Django定義了服務器發布、路由映射、模板編程、數據處理的一整套功能,這意味著開發者需要學習Django自己定義的一整套技術。 主要特點 組成結構 Django是遵循MVC架構的Web開發框架,其主要由以下幾部分組成: 管理工具 模型 視圖 模板 表單 管理站 下面逐個學習這些模塊。 二、實戰演...

    Django

    Django是一種基于Python的Web開發框架,Web開發指的是開發基于B/S架構,通過前后端的配合,將后臺服務器的數據在瀏覽器上展現給前臺用戶的應用 MVC與MTV設計模式 MVC設計模式 MTV設計模式(Django的模塊) django安裝 pip install django==1.8.2 創建項目 使用 django-admin 來創建 Dgo 項目: 創建應用 在django中,每...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    精品国产乱码久久久久久蜜桃不卡