以下是“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技术站