Django环境搭建与项目实战:从虚拟环境到ORM操作详解

竹里
竹里
发布时间:2026-10-13 | 6人浏览过
原创

本文详细讲解Django开发环境的搭建与项目创建流程。内容涵盖使用virtualenv和virtualenvwrapper配置Python虚拟环境,安装指定版本Django,创建项目与应用,以及通过ORM模型类进行数据库表的生成与数据增删改查操作。此外,还介绍了视图函数的定义、URL路由配置、模板渲染机制及后台管理系统的本地化与自定义设置,帮助开发者快速掌握Django核心功能。

Django虚拟环境搭建与管理

1. 安装虚拟环境

虚拟环境是真实Python运行环境的独立副本,用于隔离不同项目的依赖包。

安装虚拟环境相关工具需执行以下命令:

1)sudo pip install virtualenv # 安装虚拟环境工具

2)sudo pip install virtualenvwrapper # 安装虚拟环境扩展管理包

3)编辑家目录下的.bashrc配置文件,添加以下两行环境变量配置:

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

4)执行source .bashrc命令使配置立即生效。

创建虚拟环境的命令如下:

mkvirtualenv 虚拟环境名

若需创建基于Python3的虚拟环境,使用以下命令:

mkvirtualenv -p python3 bj11_py3

进入已创建的虚拟环境进行工作:

workon 虚拟环境名

查看当前机器上存在的所有虚拟环境列表:

workon 空格 + 两个tab键(自动补全)

退出当前虚拟环境:

deactivate

删除指定的虚拟环境:

rmvirtualenv 虚拟环境名

在虚拟环境下安装Python包的命令:

pip install 包名

注意:严禁使用sudo pip install 包名,该命令会将包安装到主机真实环境中,而非当前虚拟环境内。

apt-get install 软件 # 系统级软件安装

pip install python包名 # Python包安装

安装Django开发环境:

pip install django==1.8.2

查看虚拟环境中已安装的Python包列表:

pip list

pip freeze # 冻结当前环境依赖

Django项目与应用创建

2. 创建项目

django-admin startproject 项目名称

注意:创建应用前必须确保已激活并进入正确的虚拟环境。

__init__.py: 标识test1目录为Python包。

settings.py: 项目的核心配置文件。

urls.py: 负责URL路由的配置。

wsgi.py: Web服务器与Django交互的入口文件。

manage.py: 项目的命令行管理工具。

3. 创建应用

一个Django项目由多个应用组成,每个应用负责特定的业务功能。

创建应用的命令如下:

python manage.py startapp 应用名

注意:创建应用时需先进入项目根目录。

应用目录结构如下:

__init__.py: 标识该目录为Python模块。

models.py: 用于定义与数据库交互的模型类。

views.py: 接收请求数据,处理业务逻辑,与模型交互并返回响应。

定义处理函数,即视图函数。

tests.py: 存放测试代码的文件。

admin.py: 网站后台管理相关的配置。

建立应用与项目之间的联系,需对应用进行注册。

修改settings.py中的INSTALLED_APPS配置项,添加应用名。

运行开发Web服务器的命令:

python manage.py runserver

ORM模型设计与数据库操作

ORM

Django内嵌了ORM(对象关系映射)框架,ORM框架可将类与数据表对应,通过类和对象即可操作数据表。

设计类:即模型类。

ORM的另一作用:根据设计的类自动生成数据库中的表。

模型类

模型类设计

在应用models.py中设计模型类。

必须继承models.Model类。

1)设计BookInfo类。

2)设计HeroInfo类。

Models.ForeignKey可建立两个模型类之间的一对多关系,Django生成表时会在“多”的表中创建外键列,建立两表间的一对多关系。

模型类生成表

1)生成迁移文件

命令:python manage.py makemigrations

迁移文件是根据模型类定义生成的。

2)执行迁移生成表

命令:python manage.py migrate

根据迁移文件实际生成数据库表。

生成表名的默认格式:

应用名_模型类名小写

通过模型类操作数据表

进入项目shell的命令:

python manage.py shell

以下为在交互shell终端中演示的例子:

首先导入模型类:

from booktest.models import BookInfo,HeroInfo

1)向booktest_bookinfo表中插入一条数据。

b = BookInfo() # 定义一个BookInfo类的对象

b.btitle ='天龙八部' # 定义b对象的属性并赋值

b.bpub_date = date(1990,10,11)

b.save() # 调用save方法才会将数据保存进数据库

2)查询出booktest_bookinfo表中id为1的数据。

b = BookInfo.objects.get(id=1)

3)在上一步的基础上改变b对应图书的出版日期。

b.bpub_date = date(1989,10,21)

b.save() # 调用save方法才会更新表格中的数据

4)紧接上一步,删除b对应的图书数据。

b.delete() # 调用delete方法才会删除

5)向booktest_heroInfo表中插入一条数据。

h = HeroInfo()

h.hname = '郭靖' h.hgender = False

h.hcomment = ‘降龙十八掌'

b2 = BookInfo.objects.get(id=2)

h.hbook = b2 # 给关系属性赋值,指定英雄对象所属的图书对象

h.save()

6)查询图书表里面的所有内容。

BookInfo.objects.all()

HeroInfo.objects.all()

关系操作

1)查询出id为2的图书中所有英雄人物的信息。

b = BookInfo.objects.get(id=2)

b.heroinfo_set.all() # 查询出b图书中所有英雄人物的信息

后台管理系统配置

后台管理

1)本地化

设置语言和时区的本地化:zh-hans

修改settings.py文件,设置时区:Asia/Shanghai

2)创建管理员

命令:python manage.py createsuperuser

3)注册模型类

在应用下的admin.py中注册模型类。

告知Django框架根据注册的模型类生成对应的表管理页面。

b = BookInfo()

str(b) __str__ # 定义字符串表示方法

4)自定义管理页面

自定义模型管理类。模型管理类用于告诉Django在生成的管理页面上显示哪些内容。

视图函数与URL路由配置

视图

在Django中,通过浏览器请求页面时,使用视图函数来处理请求,视图函数处理后需向浏览器返回页面内容。

视图函数的使用

1)定义视图函数

视图函数定义在views.py中。

例:

def index(request):

# 进行处理。。。

return HttpResponse('hello python')

视图函数必须有一个参数request,处理完成后需返回HttpResponse类对象,'hello python'即为返回给浏览器显示的内容。

2)进行url配置

URL配置的目的是建立URL与视图函数的对应关系。URL配置项定义在urlpatterns列表中,每一项调用url函数。

url函数有两个参数,第一个是正则表达式,第二个是对应的处理动作。

配置URL时,有两种语法格式:

a) url(正则表达式,视图函数名)

b) url(正则表达式,include(应用中的urls文件))

工作中配置URL时,首先在项目的urls.py文件中添加配置项,通常不直接写具体URL与视图函数的对应关系,而是包含具体应用的urls.py文件,在应用的urls.py文件中写URL和视图函数的对应关系。

URL匹配的过程

在项目的urls.py文件中包含具体应用的urls.py文件,应用的urls.py文件中写URL和视图函数的对应关系。

当用户输入如http://127.0.0.1:8000/aindex时,去除域名和最前面的/,剩下aindex,拿aindex字符串到项目的urls文件中进行匹配,配置成功后,去除匹配的a字符,剩下的index字符串继续到项目的urls文件中进行正则匹配,匹配成功后执行视图函数index,index视图函数返回内容'hello python'给浏览器显示。

模板渲染与数据传递

模板

模板不仅仅是一个HTML文件,它还包含逻辑和变量。

模板文件的使用

1)创建模板文件夹

2)配置模板目录

3) 使用模板文件

a) 加载模板文件

去模板目录下面获取HTML文件的内容,得到一个模板对象。

b) 定义模板上下文

向模板文件传递数据。

c) 模板渲染

得到一个标准的HTML内容。

给模板文件传递数据

模板变量使用:{{ 模板变量名 }}

模板代码段:{%代码段%}

for循环:

{% for i in list %}

{% endfor %}

以上这篇Django的创建和使用详解(默认数据库sqlite3)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。

本站声明

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

Python 相关产品和应用

全部下载

专题列表