django小项目

Django 是一个高级的Python Web框架,鼓励快速开发和简洁、实用的设计。它的目标是让开发人员能够更加专注于程序的业务逻辑,而无需关注过多的细节。以下是介绍如何用Django进行基本的Web开发的一些步骤和示例。

安装Django

在开始之前,确保你已经安装了Python和pip(Python包管理工具)。然后,使用pip安装Django:

Copy

pip install django

创建Django项目

创建一个Django项目:一个Django项目包含了你整个网站的配置。你可以通过django-admin命令来创建一个新的项目:

Copy

django-admin startproject myproject

cd myproject

创建一个Django应用:在Django中,一个项目可以包含多个应用(app),每个应用都是一个独立的模块,负责处理项目的一个特定功能。使用以下命令创建一个新的应用:

Copy

python manage.py startapp myapp

添加应用到项目配置:在myproject/settings.py中,将你的应用添加到INSTALLED_APPS列表中:

Copy

INSTALLED_APPS = [

...

'myapp',

]

定义模型(Model)

模型负责定义数据库的结构。在myapp/models.py中定义你的模型:

Copy

from django.db import models

class Article(models.Model):

title = models.CharField(max_length=200)

content = models.TextField()

published_date = models.DateTimeField(auto_now_add=True)

def __str__(self):
    return self.title

生成和应用数据库迁移(Database Migration)

生成迁移文件:Django会追踪你对模型的更改,并生成相应的数据库迁移文件:

Copy

python manage.py makemigrations

应用迁移:将这些迁移应用到你的数据库,创建相应的表结构:

Copy

python manage.py migrate

创建视图(View)

视图决定了如何展示数据。在myapp/views.py中定义你的视图:

Copy

from django.shortcuts import render

from .models import Article

def index(request):

articles = Article.objects.all()

return render(request, 'index.html', {'articles': articles})

创建URL配置

在myapp目录下创建一个名为urls.py的文件,并定义URL模式:

Copy

from django.urls import path

from . import views

urlpatterns = [

path('', views.index, name='index'),

]

确保在myproject/urls.py中包含你的应用的URL配置:

Copy

from django.contrib import admin

from django.urls import include, path

urlpatterns = [

path('admin/', admin.site.urls),

path('', include('myapp.urls')),

]

创建模板(Template)

在myapp目录下创建一个templates目录,并在其中创建一个index.html文件:

Copy
My Articles

Articles

  • {% for article in articles %}
  • {{ article.title }} - {{ article.published_date }}
  • {% endfor %}

运行开发服务器 现在,你可以运行Django的开发服务器来查看你的工作成果:

Copy

python manage.py runserver

打开你的浏览器,访问http://127.0.0.1:8000/,你应该可以看到一个文章列表的页面。

管理后台

Django提供了一个强大的管理后台。首先,创建一个超级用户,以便你能够登录管理界面:

Copy

python manage.py createsuperuser

然后,更新myapp/admin.py文件,注册你的模型:

Copy

from django.contrib import admin

from .models import Article

admin.site.register(Article)

现在,你可以访问http://127.0.0.1:8000/admin/并使用超级用户的凭据登录,管理你的文章。

通过这些步骤,你已经创建了一个简单的Django应用,能够显示数据库中的数据,并提供了一个基本的管理界面。Django还有许多其他功能和特性,例如表单处理、用户认证、中间件等,你可以根据需要进一步学习和探索。

在Django项目中,添加测试功能是一项重要的任务,它能确保你的代码在开发和修改过程中保持其正确性和稳定性。Django内置了对测试的支持,使用的测试框架是Python的unittest。以下是在Django中添加和运行测试的一些步骤和示例:

  1. 设置测试环境

    Django项目默认支持测试功能,并且推荐你把测试代码放在每个应用的tests.py文件中。但为了更好地组织测试代码,也可以把测试分成多个文件和目录。

  2. 编写测试用例

    在你的应用目录中,找到并编辑tests.py文件。我们将为之前建立的Article模型编写测试用例。

例如,在myapp/tests.py中:

Copy

from django.test import TestCase

from .models import Article

class ArticleModelTests(TestCase):

def test_article_creation(self):
    # 创建一个新的文章对象
    article = Article.objects.create(title="Test Article", content="Test content")
    
    # 检查对象是否正确创建
    self.assertEqual(article.title, "Test Article")
    self.assertEqual(article.content, "Test content")
    self.assertIsNotNone(article.published_date)
  1. 添加更多测试
    你可以添加更多测试来覆盖你的视图、表单、模板等。

例如,测试视图的示例:

Copy

from django.urls import reverse

class ArticleViewTests(TestCase):

def test_index_view(self):
    # 创建一些测试数据
    Article.objects.create(title="Test Article 1", content="Test content 1")
    Article.objects.create(title="Test Article 2", content="Test content 2")

    # 通过客户端请求视图
    response = self.client.get(reverse('index'))

    # 检查响应
    self.assertEqual(response.status_code, 200)  # 检查状态码
    self.assertContains(response, "Test Article 1")  # 检查内容
    self.assertContains(response, "Test Article 2")
    self.assertTemplateUsed(response, 'index.html')  # 检查使用的模板
  1. 运行测试
    使用manage.py运行测试。Django提供了一个简单的命令来运行所有的测试:

Copy

python manage.py test

该命令会自动发现并运行tests.py中的所有测试用例,并输出结果。

  1. 使用工厂库(可选)
    为了简化测试数据的创建,你可以使用 factory_boy 等第三方库。它能方便地生成测试数据,并且能让你的测试保持简洁、易读。

首先,安装factory_boy:

Copy

pip install factory_boy

然后,可以在tests.py中使用工厂来创建测试数据:

cpp 复制代码
# myapp/tests.py
from django.test import TestCase
from .models import Article

class ArticleModelTests(TestCase):

    def test_article_creation(self):
        # 创建一个新的文章对象
        article = Article.objects.create(title="Test Article", content="Test content")
        
        # 检查对象是否正确创建
        self.assertEqual(article.title, "Test Article")
        self.assertEqual(article.content, "Test content")
        self.assertIsNotNone(article.published_date)
  1. 其他测试功能
    测试表单:通过将表单数据传递到视图中并验证验证结果,以确保表单逻辑正确。
    测试中间件和信号:确保你的中间件和信号在预期情况下正确工作,可以模拟请求或者触发信号进行测试。
    持续集成:结合持续集成(CI)工具,如GitHub Actions、Travis CI或Jenkins,可以在每次代码提交或合并时自动运行测试,确保项目始终保持高质量。
    通过以上步骤和示例,你可以在Django项目中添加和运行测试功能,确保你的代码在开发和修改过程中保持其正确性和稳定性。
相关推荐
往日情怀酿做酒 V17639296384 小时前
Django基础之路由
后端·python·django
Mr数据杨6 小时前
解决整合Django与Jinja2兼容性的问题
数据库·django·sqlite
Adolf_19936 小时前
Django中 model 一对一 一对多 多对多关系 关联
数据库·django·sqlite
Adolf_199320 小时前
Django 自定义路由转换器
后端·python·django
XMYX-020 小时前
深入解析 Django 中数据删除的最佳实践:以动态管理镜像版本为例
数据库·django·sqlite
XMYX-020 小时前
使用 Django 构建支持 Kubernetes API 测试连接的 POST 接口
python·kubernetes·django
工业互联网专业1 天前
Python毕业设计选题:基于django+vue的期货交易模拟系统的设计与实现
vue.js·python·django·毕业设计·源码·课程设计
codists1 天前
《Django 5 By Example》阅读笔记:p339-p358
python·django
刘天远2 天前
django实现paypal订阅记录
后端·python·django