当前位置: 首页 > article >正文

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中使用工厂来创建测试数据:

# 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项目中添加和运行测试功能,确保你的代码在开发和修改过程中保持其正确性和稳定性。

http://www.kler.cn/a/413069.html

相关文章:

  • Flink Sink的使用
  • 关闭AWS账号后,服务是否仍会继续运行?
  • 打开windows 的字符映射表
  • transformer学习笔记-神经网络原理
  • 基于Matlab实现LDPC编码
  • 《免费的学习网站推荐3》
  • 【微信小程序】- 位置权限
  • 数据结构C语言描述5(图文结合)--广义表讲解与实现
  • 小程序基础:流程。
  • 计算机网络:运输层 —— TCP 的超时重传机制
  • LLM-pruner源码解析
  • VS2022的MFC的ReadString的问题
  • 熔断限流:业务实现自我保护
  • C++ ADL参数依赖查找
  • scala统计词频
  • 嵌入式工程师面试笔试总结——day2
  • TorchMoji使用教程/环境配置(2024)
  • 记录下在html文件中如何直接使用npm依赖,以threejs为例
  • sentry前端接入 报错403
  • 2022 年 3 月青少年软编等考 C 语言三级真题解析
  • YourPHPCMS Register_checkEmail存在sql注入漏洞
  • uniapp中的事件:v-on
  • Spring Boot 3 集成 Spring Security(3)数据管理
  • 同时多平台git配置:GitHub和Gitee生成不同的SSH Key
  • WPF——自定义ToolTip
  • Git远程仓库过大导致clone失败的解决方法