下面将详细讲解关于“Python框架Django基础指南”的完整攻略及示例说明。
Python框架Django基础指南
简介
Django是一款使用Python编写的高级Web框架,采用了MVC模式(即Model-View-Controller模式),旨在帮助开发方便快捷地创建复杂、动态的Web应用程序。Django也是非常适合使用REST API构建的。
安装Django
在安装Django之前,确保你已经安装了Python 3.x版本。以下是在Windows环境下安装Django的步骤:
- 打开命令提示符(CMD);
- 输入以下命令:
pip install django
; - 回车之后,等待pip自动下载和安装Django。
创建Django项目
创建Django项目步骤如下:
- 打开命令提示符(CMD);
- 输入以下命令:
django-admin startproject 项目名称
,其中“项目名称”是你自己所定义的项目名称; - 等待Django创建项目。
在创建项目后,你可以在项目的根目录下找到一个名为“manage.py”的文件。该文件是Django项目的交互入口,使用该文件可以启动本地服务器、执行数据库迁移等操作。
创建Django应用程序
Django应用程序即Django项目中的一个小模块,用于执行某一项具体的任务,例如管理用户、展示博客文章等。创建Django应用程序的步骤如下:
- 在命令提示符(CMD)中定位到Django项目的根目录(即包含“manage.py”文件的目录);
- 输入以下命令:
python manage.py startapp 应用名称
,其中“应用名称”是你自己所定义的应用名称; - 等待Django创建该应用程序并在项目的“apps”目录下生成相关文件。
Django模型
Django模型是与数据库相关联的对象。在Django中,模型可以用于执行各种数据库操作,例如创建、删除、添加、更新数据记录等。Django模型的定义一般都在特定的应用程序中的“models.py”文件中。
以下是Django模型的一个简单示例:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
该示例中,我们定义了一个名为“Post”的Django模型,包含了文章标题、“内容”和发布时间这三个字段。其中,“title”和“content”字段均使用CharField和TextField存储相应的字符串类型数据,“pub_date”字段使用DateTimeField存储日期时间类型数据。
Django视图
Django视图是用于处理URL请求的Python函数。对于每个Web请求,Django都会调用相应的视图函数来生成博客文章、用户信息等内容。Django中的视图函数一般都定义在特定的应用程序中的“views.py”文件中。
以下是Django视图函数的一个简单示例:
from django.shortcuts import render
from django.http import HttpResponse
def blog_post(request):
return HttpResponse("这是一个博客文章。")
该示例中,我们定义了一个名为“blog_post”的Django视图函数,返回了一条字符串表示这是一个博客文章。在实际应用中,该函数需要根据不同的请求参数、数据库查询结果等动态生成具体的文章内容。
示例说明
我们已经学习了Django的基础概念和创建Django项目、应用程序、模型和视图函数的方法,下面将进一步了解如何使用Django创建一个具有完整功能的博客应用程序。
示例1:博客应用程序的创建
步骤1:创建Django项目
打开命令提示符(CMD),输入以下命令:
django-admin startproject myblog
步骤2:创建Django应用程序
在命令提示符(CMD)中定位到myblog项目的根目录中,输入以下命令:
python manage.py startapp blog
步骤3:添加应用程序到Django项目中
在myblog项目的settings.py文件中INSTALLED_APPS字段中添加"blog"应用程序。
步骤4:定义Django模型
在blog应用程序的models.py文件中添加以下模型定义:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
步骤5:定义Django视图函数
在blog应用程序的views.py中添加以下视图函数:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Post
def blog_home(request):
posts = Post.objects.all()
context = {'posts': posts}
return render(request, 'blog_home.html', context)
def blog_post(request, id):
try:
post = Post.objects.get(pk=id)
except Post.DoesNotExist:
return HttpResponse("文章未找到", status=404)
context = {'post': post}
return render(request, 'blog_post.html', context)
步骤6:创建Django模板
在blog应用程序的templates文件夹中创建以下两个模板文件以呈现blog应用程序的页面:
blog_home.html:
{% extends 'base.html' %}
{% block content %}
<h1>最新文章</h1>
<ul>
{% for post in posts %}
<li><a href="{% url 'blog_post' post.id %}">{{ post.title }}</a></li>
{% endfor %}
</ul>
{% endblock %}
blog_post.html:
{% extends 'base.html' %}
{% block content %}
<h1>{{ post.title }}</h1>
<p>{{ post.content }}</p>
<p>发布时间:{{ post.pub_date }}</p>
{% endblock %}
步骤7:定义URL路由
在blog应用程序的urls.py中添加以下URL路由:
from django.urls import path
from blog.views import blog_home, blog_post
urlpatterns = [
path('', blog_home, name='blog_home'),
path('<int:id>/', blog_post, name='blog_post'),
]
步骤8:启动本地开发服务器并访问应用程序
在myblog项目的根目录下,执行以下命令启动本地开发服务器:
python manage.py runserver
在浏览器中访问http://127.0.0.1:8000/,即可看到blog应用程序的首页。
示例2:使用REST API构建博客应用程序
Django的REST框架可以帮助我们快速构建RESTful API,方便移动客户端、前端Ajax交互等实现不同形式的数据访问。下面将介绍如何使用Django REST框架创建一个博客应用程序。
步骤1:安装Django REST框架
在命令提示符(CMD)中输入以下命令:
pip install djangorestframework
步骤2:创建使用Django REST框架的Django应用程序
在myblog项目的根目录中使用以下命令创建Django REST应用程序:
python manage.py startapp blogapi
步骤3:定义Django REST模型
在blogapi应用程序的models.py文件中添加以下模型定义:
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
pub_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
步骤4:定义Django REST序列化
在blogapi应用程序中创建一个新的Python文件serializers.py,添加以下代码:
from rest_framework import serializers
from .models import Post
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = '__all__'
该代码用于将Post模型转换为JSON格式的RESTful API响应。
步骤5:定义Django REST视图
在blogapi应用程序中创建一个新的Python文件views.py,添加以下代码:
from rest_framework import generics
from .models import Post
from .serializers import PostSerializer
class PostList(generics.ListCreateAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
class PostDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Post.objects.all()
serializer_class = PostSerializer
该代码用于定义包含API端点、允许使用GET、POST、PUT、DELETE等HTTP方法的Django REST视图。
步骤6:定义Django REST路由
在blogapi应用程序中的urls.py中,添加以下代码:
from django.urls import path
from .views import PostList, PostDetail
urlpatterns = [
path('', PostList.as_view(), name='post_list'),
path('<int:pk>/', PostDetail.as_view(), name='post_detail'),
]
该代码用于定义Django REST API的路由,将PostList和PostDetail视图绑定到适当的URL中。
步骤7:添加Django REST应用程序到myblog项目中
在myblog项目的settings.py文件中INSTALLED_APPS字段中添加"blogapi"应用程序。
步骤8:启动本地开发服务器并访问应用程序
在myblog项目的根目录下,执行以下命令启动本地开发服务器:
python manage.py runserver
在浏览器中访问http://127.0.0.1:8000/api/posts/,即可看到已使用Django REST框架创建的博客API。
至此,我们已经学习了使用Django创建具有完整功能的博客应用程序以及使用Django REST框架创建RESTful API的具体方法和步骤。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python框架django基础指南 - Python技术站