Django入门使用示例

以下是“Django入门使用示例”的完整攻略。

Django入门使用示例

本文将介绍Django的入门使用示例,包括如何创建Django项目和应用,如何定义模型,并进行数据迁移和数据查询等操作。本文的示例采用Django 3.2 版本。

创建Django项目和应用

首先,我们需要创建Django项目。在命令行中输入以下命令:

django-admin startproject mysite

其中mysite是项目的名称,可以根据需要自定义。

接下来,我们需要创建一个Django应用,这里我们以blog为例,在命令行中输入以下命令:

python manage.py startapp blog

其中blog是应用的名称,可以根据需要自定义。

定义模型

在Django中,模型是与数据库相关的类,它描述了数据在数据库中的结构。在blog应用中,我们可以定义一个Post模型,用来存储博客文章的信息。在blog/models.py文件中添加以下代码:

from django.db import models

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

其中,我们定义了一个Post模型,包含了title、content、created_at和updated_at四个属性,分别对应文章的标题、内容、创建时间和更新时间。

数据迁移

定义完模型后,我们需要将模型映射到数据库中,并创建相应的数据库表。在命令行中依次输入以下命令:

python manage.py makemigrations blog

以上命令会生成一个迁移文件。接下来,我们需要执行迁移操作:

python manage.py migrate

以上命令会根据迁移文件生成数据表。

数据查询

定义好模型和数据表后,我们可以进行数据的增删改查等操作。在blog/views.py文件中添加以下代码:

from django.shortcuts import render
from blog.models import Post

def post_list(request):
    posts = Post.objects.all()
    return render(request, 'blog/post_list.html', {'posts': posts})

其中,我们定义了一个post_list视图函数,用来显示所有的博客文章内容。这里我们使用了ORM(对象关系映射)的方式查询数据库,即使用Post.objects.all()获取了所有的文章数据。

在templates/blog目录下创建post_list.html文件,添加以下代码:

<!DOCTYPE html>
<html>
<head>
    <title>Blog</title>
</head>
<body>
    <h1>Blog</h1>
    {% for post in posts %}
        <div>
            <h2>{{ post.title }}</h2>
            <p>{{ post.created_at }}</p>
            <p>{{ post.content }}</p>
        </div>
    {% endfor %}
</body>
</html>

以上代码定义了一个HTML页面,用来展示所有博客文章的标题、创建时间和内容。其中,我们使用Django模板语言的for循环语句,依次输出每篇文章的信息。

最后,在urls.py文件中添加以下代码:

from django.urls import path
from blog.views import post_list

urlpatterns = [
    path('post_list/', post_list, name='post_list'),
]

以上代码定义了一个URL,用来访问post_list视图函数。

现在可以启动Django开发服务器,在浏览器中访问http://127.0.0.1:8000/post_list/即可查看博客文章列表。

示例2

对于示例2,我们假设我们需要创建一个新的Django应用,用来存储用户的注册信息。在命令行中输入以下命令:

python manage.py startapp accounts

接下来,我们创建一个User模型,用来存储注册用户的信息,在accounts/models.py文件中添加以下代码:

from django.db import models
from django.contrib.auth.models import AbstractBaseUser, BaseUserManager

class UserManager(BaseUserManager):
    def create_user(self, email, password=None):
        if not email:
            raise ValueError("Email address is required")
        user = self.model(
            email = self.normalize_email(email)
        )
        user.set_password(password)
        user.save(using=self._db)
        return user

    def create_superuser(self, email, password=None):
        user = self.create_user(
            email = self.normalize_email(email),
            password = password
        )
        user.is_admin = True
        user.save(using=self._db)
        return user

class User(AbstractBaseUser):
    email = models.EmailField(max_length=255, unique=True)
    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = []

    objects = UserManager()

以上代码定义了一个User模型,继承了Django内置的AbstractBaseUser类,并使用BaseUserManager类进行了模型管理(UserManager)。其中,我们定义了email、is_admin和is_active三个属性,分别对应用户的邮箱、是否为管理员和账户是否激活。同时,我们使用了ORM的方式定义了create_user和create_superuser方法,用来创建普通用户和超级用户。

接下来,我们需要创建数据表。在命令行中依次输入以下命令:

python manage.py makemigrations accounts

以上命令会生成一个迁移文件。接下来,我们需要执行迁移操作:

python manage.py migrate

以上命令会根据迁移文件生成数据表。

最后,我们可以在视图函数中使用ORM的方式进行数据查询、修改等操作。

以上就是“Django入门使用示例”的完整攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Django入门使用示例 - Python技术站

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

相关文章

  • django-rest-framework框架 第三篇 之CRUD视图扩展类(增删改查的优化)

    CRUD视图扩展类 1  CreateModelMixin 2  RetrieveModelMixin 3  UpdateModelMixin 4  DestroyModelMixin <1> 创建扩展类   CreateModelMixin 提供create(request, *args, **kwargs) 这个方法 实现了创建、保存一个新m…

    Django 2023年4月11日
    00
  • Django-权限信息中间件操作

    # 在当前app下新建一个middleware的文件夹,然后就可以尽情的写中间件了,只能是这个名字,切记~@!import re from django.shortcuts import redirect,HttpResponse from django.conf import settings class MiddlewareMixin(object): …

    Django 2023年4月16日
    00
  • Django实现邮件的发送(含源码)

    Django是一个Python Web框架,提供了极为强大的发送电子邮件的能力。下面将详细阐述Django如何实现邮件的发送。 配置邮件设置 在Django的settings.py文件中,添加以下配置: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_…

    Django 2023年3月13日
    00
  • Django笔记二十之手动编写migration文件

    本文首发于公众号:Hunter后端原文链接:Django笔记二十之手动编写migration文件 前面介绍过,migration 文件主要记录的是 Django 系统 model 的变化,然后通过 migrate 命令将变化适配到数据库中。 比如在某个 application 下新增了某张表,或者对某张表更改了字段,可以生成 migration 文件,然后通…

    2023年4月10日
    00
  • django2.0无法加载外部css和js的问题

    解决问题的思路来源于https://www.v2ex.com/t/430192 先是创建static目录,该目录与manage.py同级 然后在项目settings.py文件里添加 STATICFILES_DIRS = ( os.path.join(BASE_DIR, ‘static’).replace(‘\\’, ‘/’),) INSTALLED_APPS…

    Django 2023年4月10日
    00
  • Django界面“Django Administrator”修改为自定义

    1、引用django框架的项目,当你需要修改Django administration这个标题的时候, 去admin.py项目修改,加一句话: admin.site.site_header = “xxx平台” 其中site_header是django三方包里面定义的变量,在base_site.html这个里面能看到, 定义的变量名,需要你在admin.py里…

    Django 2023年4月11日
    00
  • django os.environ慎用setdefault操作环境变量

    在绝大多数情况下,如果需要在程序运行过程中设置环境变量,使用os.environ.setdefault函数是没有任何问题的,但是有两种场景下setdefault会造成意外的问题,需要慎用: 如果程序执行前,系统里已经存在了某环境变量(如ENV=VAL1),此时如果在程序中用setdefault函数对该环境变量设置另一个不同的值(如VAL2),会因为setde…

    Django 2023年4月13日
    00
  • django基础知识之模型查询:

    查询集表示从数据库中获取的对象集合 查询集可以含有零个、一个或多个过滤器 过滤器基于所给的参数限制查询的结果 从Sql的角度,查询集和select语句等价,过滤器像where和limit子句 接下来主要讨论如下知识点 查询集 字段查询:比较运算符,F对象,Q对象 在管理器上调用过滤器方法会返回查询集 查询集经过过滤器筛选后返回新的查询集,因此可以写成链式过滤…

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