Django环境搭建与项目实战:从虚拟环境到ORM操作详解
本文详细讲解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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









