Django 2.1.7 快速入门:项目创建、路由配置与数据交互实战

云舒
云舒
发布时间:2026-10-13 | 2人浏览过
原创

本文基于Django 2.1.7版本,详细讲解Python Web框架的MTV模式及项目初始化流程。内容涵盖从命令行创建工程、配置外部访问权限,到理解目录结构及APP模块划分。重点解析函数视图(FBV)与类视图(CBV)的路由映射方法,并演示静态文件管理、表单提交、多值获取及文件上传等核心数据交互操作,帮助开发者快速掌握Django基础开发技能。

Django架构与版本说明

本文所使用的Django框架版本为2.1.7。

Django作为Python生态中主流的Web框架,其核心设计遵循MTV架构思想。

在深入Django之前,有必要了解经典的MVC设计模式。

MVC模式包含三个核心组件:Model(模型,负责数据库操作)、View(视图,负责展示模板)以及Controller(控制器,负责业务逻辑处理)。

Django对MVC进行了重构,提出了MTV架构模式。

在MTV模式中,Model(模型)依然负责数据库操作;Template(模板)对应原MVC中的View,负责视图展示;而View(视图)则承担原Controller的角色,处理业务逻辑。

项目创建与服务启动

接下来介绍Django环境的安装及服务访问流程。

首先需要进行环境安装。

pip3 install django

创建项目目录是第一步操作。

以Windows系统为例,在目标文件夹中按住Shift键并点击鼠标右键,选择“在此处打开命令窗口”或“在终端中打开”,即可快速进入该目录进行后续操作。

执行命令:C:\Users\东东\AppData\Local\Programs\Python\Python37\Scripts\django-admin.exe startproject dongjg,以创建名为dongjg的工程目录。

服务启动是验证环境是否配置成功的关键步骤。

启动服务时,需确保manage.py脚本与当前工程目录对应。

若需允许外部网络访问该服务,必须修改工程目录下的settings.py文件,将ALLOWED_HOSTS配置为["*"]以允许所有主机访问。

python manage.py runserver 0.0.0.0:8000

完成上述配置后,即可进行访问测试。

在浏览器中输入http://127.0.0.1:8000/,若看到Django欢迎页面,则说明服务启动成功。

工程结构与APP模块管理

了解生成的工程目录结构有助于后续开发。

默认的工程目录结构包含若干关键文件与文件夹。

在未创建APP时,可通过修改urls.py来测试简单页面。

在urls.py文件中添加简单的路由映射及处理函数,即可生成测试页面。

保存后访问http://127.0.0.1:8000/dong,即可看到自定义的测试输出。


from django.contrib import admin
from django.urls import path
#新建处理方法
from django.shortcuts import HttpResponse
def homex(requestx):
 return HttpResponse("东小东【dongxiaodong】")

urlpatterns = [
 path('admin/', admin.site.urls),
 path("dong",homex),#添加URL对应关系
]

创建APP(应用)是实现模块化开发的基础操作。

通过创建多个APP,可以实现后台管理、用户登录等独立模块的功能隔离。

python manage.py startapp dongapp2

每个APP都有其特定的目录结构规范。

migrations文件夹用于存储数据库操作记录,即表结构的修改历史。

admin.py文件用于配置Django自带的后台管理页面。

models.py文件用于定义数据库模型,即创建数据库表结构。

apps.py文件包含当前APP的配置文件。

views.py文件用于编写具体的业务处理代码。

tests.py文件用于编写单元测试代码。

路由配置:FBV与CBV实战

路由映射到视图的方法主要有两种:函数视图(FBV)和类视图(CBV)。

在dongapp2应用的views.py文件中定义处理函数。


from django.shortcuts import HttpResponse
def homex(requestx):
 return HttpResponse("东小东【dongxiaodong】")

在工程的urls.py文件中配置路由指向。


from django.contrib import admin
from django.urls import path
from dongapp2 import views
urlpatterns = [
 path('admin/', admin.site.urls),
 path("dong",views.homex),#添加URL对应关系
]

另一种方式是使用类视图(CBV)进行路由映射。

同样在dongapp2应用的views.py文件中定义视图类。


from django.views import View
from django.shortcuts import HttpResponse
from django.shortcuts import render #导入
class DongClass(View):
 def get(self,requestx):#当请求为get时进入
  #return HttpResponse(requestx.GET.get("gdax","无数据"))
  return render(requestx, "loginx.html", {"dongx": 12}) # 返回文件
 def post(self,requestx):#当请求为POST时进入
  return HttpResponse(requestx.POST.get("user","无数据"))

在urls.py中通过.as_view()方法将类视图映射到URL。

path("cdong",views.DongClass.as_view()),

静态文件管理与数据交互

静态文件(static)的管理也是Web开发的重要环节。

静态文件通常用于存放CSS样式、图片资源及JavaScript代码等。

配置好静态文件后,可通过http://127.0.0.1:8000/static/img/an.png这样的路径进行外部访问测试。

需在setting.py文件中正确设置静态文件的存放位置及访问前缀。

在模板HTML文件中,通过特定的标签语法引入静态资源。


<link rel="stylesheet" href="static/dong.css" rel="external nofollow" >

数据获取是Web应用的核心功能之一。

通过表单提交测试可以验证数据交互流程。

在setting.py中注释掉CSRF相关的检查语句,即可通过action="dong"的表单直接提交数据;若不禁用,则需参考CSRF保护机制进行处理。

在视图函数中获取客户端提交的访问数据。


 #控制台输出所有的请求信息
 for k,v in requestx.environ.items():
 print(k,"----->",v)
 print("你的设备基本信息:",requestx.environ.get("HTTP_USER_AGENT","w"))
 print("你的IP地址:",requestx.environ.get("REMOTE_ADDR","w"))
 xx=requestx.path_info #获取url,如http://127.0.0.1:8000/x1/x2/xxxxcd3,输出:/x1/x2/xxxxcd3
 methodx = requestx.method #得到访问方式,输出:GET POST
 #userx1=requestx.POST["user"] #获取POST值,如果name不存在会报错
 userx2=requestx.POST.get("user","xxx") #获取POST值,如果不存在则输出xxx

除了响应内容,还可以对响应头进行自定义设置。


 # 本地页面跳转
 from django.shortcuts import redirect # 导入
 retx = redirect("dong/")
 # 返回文件,并匹配值
 from django.shortcuts import render #导入
 retx= render(requestx, "loginx.html",{"dongkk1":"替换值1","dongkk2":"替换值2"}) 
 #返回字符串
 from django.shortcuts import HttpResponse
 retx=HttpResponse("东小东【dongxiaodong】")
 #设置响应头
 retx["tttt"]="tttvvvvv"
 return retx

复选框测试用于验证多值数据的获取方式。

通过特定方法将复选框的数据获取到一个列表中。

listx=requestx.POST.getlist("boxd")

前端页面中定义复选框元素。


<input type="checkbox" name="boxd" value="1xx" >选项1
<input type="checkbox" name="boxd" value="xx2" >选项2
……..

文件上传功能允许用户将本地文件传输至服务器。


 fileobjx=requestx.FILES.get("dongfile")#得到文件对象
 filenamex=fileobjx.name#得到文件名
 filesize=fileobjx.size#文件大小
 f=open("static/img/"+filenamex,"wb")#创建新文件保存数据
 for datax in fileobjx.chunks():#接收数据,可以不用写.chunks(),默认会调用
 f.write(datax)
 f.close()

本文对Django的基础启动与核心配置进行了总结。

以上所述是小编给大家介绍的Python后台开发Django的教程详解(启动),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表