Django的开发步骤原来是这样的

当我们开始使用Django进行Web开发时,我们通常需要遵循以下步骤:

1.规划项目结构

在开始编写代码之前,我们需要认真考虑我们将要实现的功能和我们的项目结构。Django是一个MVC框架,它鼓励我们将不同的应用程序放在不同的应用程序(APP)目录中,并将每个应用程序分解为模型(Models),视图(Views)和控制器(Controller)(URLconf)。这使得项目更加可维护和可重用。例如,一个基本的Django项目结构如下所示:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        wsgi.py
    myapp/
        __init__.py
        models.py
        views.py
        urls.py
        templates/
            myapp/
                index.html

2.创建Django项目

一旦我们已经规划好了我们的项目结构,我们现在可以创建我们的Django项目。

使用以下命令创建Django项目:

django-admin startproject projectname

3.创建Django应用程序

我们现在需要创建一个应用程序(APP)来实现我们的项目的一些功能。要创建一个应用程序,请使用以下命令:

python manage.py startapp appname

创建后,我们需要将应用程序名称添加到project/settings.py文件的INSTALLED_APPS顶部的列表中。

4.创建模型

模型(Models)是Django的核心组件之一,并用于定义应用程序中的数据结构。在我们的应用程序中创建模型是实现全功能Web应用程序的重要一步。

例如,在我们的应用程序中,我们创建一个名为“Book”的类来表示书籍对象。这可以通过在appname/models.py中创建以下代码块来完成:

from django.db import models


class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=200)
    pub_date = models.DateField()

    def __str__(self):
        return self.title

这将创建一个名为Book的类,并将其保存到appname/models.py文件中。我们还定义了Book的属性:Title,Author和Pub_date。

5.创建视图

视图(Views)是Django应用程序中的另一个核心组件,并用于呈现应用程序的动态内容。在我们的应用程序中创建视图是实现Web应用程序的关键步骤之一。

例如,我们可以在appname/views.py文件中创建以下视图:

from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the book index page.")

这将创建一个名为“index”视图,并在其中定义所有请求的行为。在这种情况下,我们只是在网页上显示“Hello, world. You're at the book index page.”消息。

6.创建URLconf

我们需要将我们的应用程序与URLs相关联,以确保在浏览器中输入正确URL时使用正确的视图。URLconf是urlhelpers.py文件,其包含我们的应用程序的URL和相应的视图。

例如,我们在appname/urlhelpers.py文件中添加以下代码:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

这将通过创建一个与我们定义的视图函数匹配的URL模式来将视图与URL关联起来,并将其命名为“index”。

7.运行并测试应用程序

我们现在可以在本地运行我们的应用程序以测试它。使用以下命令启动Django服务器:

python manage.py runserver

在此之后,我们可以在本地计算机上打开浏览器并输入以下地址进行测试:

http://127.0.0.1:8000/

这将显示我们在视图中定义的消息。

以上是Django的典型开发过程,具体实现取决于你想实现的功能及具体需求。下面通过两个示例说明:

示例1:创建一个用户注册表单

1.首先,在app目录下的templates目录中创建一个名为register.html的文件。

2.在register.html中添加以下代码:

{% block content %}
    <h2>Register</h2>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Register</button>
    </form>
{% endblock %}

3.在app目录下,创建一个views.py文件

4.在views.py文件中添加以下代码块:

from django.shortcuts import render, redirect
from django.contrib.auth.forms import UserCreationForm


def register(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('home')
    else:
        form = UserCreationForm()
    return render(request, 'register.html', {'form': form})

5.在应用程序目录中的urlhelpers.py文件中添加以下代码块:

from django.urls import path
from . import views

urlpatterns = [
    path('register/', views.register, name='register'),
]

现在,我们可以建立一个完整的用户注册系统。

示例2:添加一个名为“ratings”的等级模型

1.在我们的应用程序目录中的models.py文件中,添加以下模型定义:

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


class Rating(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    book = models.ForeignKey(Book, on_delete=models.CASCADE)
    rating = models.IntegerField(default=0)

    def __str__(self):
        return "Rating for book %s by user %s" % (self.book, self.user)

2.在app目录的views.py文件中添加以下代码块:

from django.shortcuts import render
from .models import Book, Rating


def book_detail(request, id):
    book = Book.objects.get(pk=id)
    ratings = Rating.objects.filter(book=book)
    context = {
        'book': book,
        'ratings': ratings,
    }
    return render(request, 'book_detail.html', context)

3.在app目录中的templates目录中创建一个名为book_detail.html的文件,添加以下代码块:

<h2>{{ book.title }}</h2>

<p>{{ book.author }}</p>

<h3>Ratings</h3>

{% if ratings.count > 0 %}
<ul>
    {% for rating in ratings %}
    <li>{{ rating.user.username }} rated this book a {{ rating.rating }}</li>
    {% endfor %}
</ul>
{% else %}
<p>No ratings available.</p>
{% endif %}

4.在应用程序目录中的urlhelpers.py文件中,为book_detail视图添加URL模式:

from django.urls import path
from . import views

urlpatterns = [
    path('book/<int:id>/', views.book_detail, name='book_detail'),
]

现在,我们可以添加一个使用Rating模型的网页,以便用户可以对书籍进行评级。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django的开发步骤原来是这样的 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • django从请求到响应的过程深入讲解

    当请求发出后,Django将会执行一系列的处理步骤,最终生成对应的响应,这个过程可以分为以下几步: 1. 请求接收 当用户在浏览器中输入URL请求网页时,Django将会接收到这个请求。这个请求将会被一个称为WSGI的Python规范所捕获,然后交给Django进行处理。在Django应用程序中,这部分处理由WSGI服务器负责。 2. URL匹配和视图解析 …

    Django 2023年5月16日
    00
  • Django模型中的admin后台管理无法显示字段

    在执行django后台管理时,登陆到http://127.0.0.1:8000/admin/,进入页面后没有对应的字段显示。请解决?   代码: models.py from django.db import models # Create your models here. #发布会表 from django.db import models class …

    2023年4月9日
    00
  • python3+django2开发一个简单的人员管理系统过程详解

    我来为你详细讲解一下“Python3+Django2开发一个简单的人员管理系统”的完整攻略。 1. 环境搭建 首先,我们需要先安装Python3和Django2。如果你还没有安装过这两个库,可以参照以下步骤进行安装: 安装Python3:可到Python官网下载安装包,然后根据提示安装即可。 安装Django2:在终端或命令行中执行以下命令: $ pip i…

    Django 2023年5月16日
    00
  • python如何配置virtualenv虚拟环境,启动两个django环境

      1.安装virtualenv pip3 install virtualenvpip install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenvpip3 install –upgrade pip 2.创建目录 mkdir Myproject cd Myproject 3.创建独立运行环境-…

    Django 2023年4月11日
    00
  • django2.0 报错 does not appear to have any patterns in it. If you see valid patterns in the file then the issue is probably caused by a circular import.

      raise ImproperlyConfigured(msg.format(name=self.urlconf_name)) django.core.exceptions.ImproperlyConfigured: The included URLconf ‘<module ‘users.urls’ from ‘D:\\mygitfile\\mei…

    Django 2023年4月9日
    00
  • Django动态渲染多层菜单

      为后续给菜单设置权限管理方便,通过给页面模版菜单动态渲染,通过数据菜单表进行匹配需要渲染的菜单 1 #Django表结构 2 3 class Menus(models.Model): 4 5 name = models.CharField(max_length=32, verbose_name=u’菜单名’) 6 parent = models.Fore…

    Django 2023年4月13日
    00
  • Django框架简介(MVC框架和MTV框架)

    MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller),具有耦合性低、重用性高、生命周期成本低等优点。 Django框架的设计模式借鉴了MVC框架的思想,也是分成三部分,来降低各个部分之间的耦合性。   借用介绍MVC:http…

    2023年4月9日
    00
  • Python – Django – 模板语言之自定义过滤器

    在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件 这个 templatetags 名字是固定的,myfilter 是自己起的 myfilter.py: from django import template register = template.Library() @register.filter(na…

    Django 2023年4月10日
    00
合作推广
合作推广
分享本页
返回顶部