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中实现websocket

        随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主动向客户端发送数据。  我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进…

    Django 2023年4月10日
    00
  • django crm 左侧菜单栏

      在app中创建一个service文件夹,将 权限认证中间件, 和 将权限注入session的函数写入该文件夹 控制左侧菜单栏显示项: 给permission表加一项 , is_menu, 值为True表示要在左侧菜单栏中显示,值为False表示不需要在左侧菜单栏中显示 将权限向session中注入的时候,注入两个列表 permission_list 列表…

    Django 2023年4月12日
    00
  • django发送邮件时报错 SMTPSenderRefused (501, b’Mail from address must be same as authorization user.’, ‘webmaster@localhost’) ,Connection unexpectedly closed

    原因没有开启 TLS 应设置 EMAIL_USE_TLS = True       #    QQ邮箱必须开启 开启后又报错:Connection unexpectedly closed 原因:端口号可能有问题,换端口号 EMAIL_PORT = 25       成功    完整设置如下: settings.py STATIC_URL = ‘/static…

    Django 2023年4月12日
    00
  • django的ORM操作 增加和查询

    好的!下面是关于Django ORM的增加和查询操作的详细攻略及两个示例: 增加数据 在Django中使用ORM增加数据很简单,只需要三个步骤: 创建模型实例 将需要保存的数据赋值给模型实例的属性 调用模型实例的save()方法保存数据 示例1:我们现在要实现一个功能,就是在网站中添加一篇文章。假设我们的模型如下: class Article(models.…

    Django 2023年5月15日
    00
  • vue+django配置

    1.写完Vue项目 修改src/router/index.js的Router对象 export default new Router({ mode: ‘history’, routes: [ { path: ‘/’, name: ‘Pos’, component: Pos } ] }) //添加mode:’history’ 2.修改config/index.…

    Django 2023年4月13日
    00
  • Python学习之Django的管理界面代码示例

    我来为您详细讲解一下“Python学习之Django的管理界面代码示例”的完整攻略。 Django管理界面简介 Django框架提供了一个强大的默认后台管理系统,开发者可以通过该系统轻松地管理自己的应用程序数据,包括创建、查看、修改和删除数据库中的数据。 示例一:创建Django后台管理账户 在Django的管理界面中,管理员账户是必不可少的,因此我们需要先…

    Django 2023年5月16日
    00
  • Python Django教程之实现天气应用程序

    我来为你详细讲解“Python Django教程之实现天气应用程序”的完整攻略,过程中将会包含两条示例说明。 简介 Python Django是一个高效的Web框架,能够快速创建可伸缩的Web应用程序。通过Django,我们可以使用Python编写高质量、可维护的Web应用程序。 本教程将通过实现一个天气应用程序,让你了解Python Django框架的使用…

    Django 2023年5月16日
    00
  • Django 创建超级用户

    Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制     #创建超级用户 python manage.py createsuperuser   注意密码需要8位,数字和字母组合   存储在auth_user表中   一、       基本设置   1、应用注册 若要把a…

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