前言
上篇文章简单的梳理了Django的一些基础知识,介绍了Django的MTV模式,这篇我们就开始介绍如何创建Django工程,以 及Django工程的目录结构。另外还会介绍平时开发工作中必不可少的沙盒环境是如何建立的。
创建Django工程及应用
Django环境搭建
1. 关于 Python开发环境的搭建和pip 的安装这边就不再介绍了,在安装过程中有问题的同学可以关注我们的公众号来咨询。
2. Django的安装(windows)
Django 的安装 有两种:下载源码安装 https://www.djangoproject.com/download/ 下载源码包,如django-1.11.8.tar.gz,直接用解压软件解压,比如解压到 D:\django-1.11.8\ 这个目录下,执行如下命令
cd D:
cd django-1.11.8
python setup.py install
利用pip 安装
pip install django
3. 检查是否安装成功 在 python终端输入django.VERSION,如果显示安装的版本号,就表示Django 安装成功
(blogOnline) zhangchengdeMBP-96bd:~ zhangcheng$ python Python 2.7.10 (default, Aug 17 2018, 19:45:58) [GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import django >>> django.VERSION (1, 9, 0, 'final', 0)
新建Django工程
创建工程有两种方式,通过命令行创建和通过Pycharm创建,我们这边会介绍通过命令行创建工程。打开命令行, cd 到一个你想放置代码的位置,然后运行一下命令:
django-admin startproject demo_proj
# 如 果 提 示 命 令 不 存 在,可 以 用 django-admin.py 来 尝 试 下
这行命令会在当前目录下创建一个 demo_proj 目录,我们来看下 startproject 创建了些什么:
上篇公众号已经大概的介绍了Django工程的目录结构,我这边再次重新说明下:
最外层的:file: demo_proj/ 根目录只是你项目的容器,可以重命名为任何你喜欢的名字。manage.py : 一个让你用各种方式管理 Django 项目的命令行工具。
里面一层的 demo_proj/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。(比如 demo_proj.urls)
demo_proj/init.py :一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。demo_proj/settings.py :Django 项目的配置文件
demo_proj/urls.py :Django 项目的 URL 路由配置,就像你网站的“目录”。
demo_proj/wsgi.py :作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。
启动Django工程
工程创建完毕,我们要来确认下是否创建成功。在命令行窗口我们返回到我们刚才创建的 demo_proj最外层目录,执行如下命令:
...\> python manage.py runserver
如果启动成功,会看到如下输出:
浏览器访问 http://127.0.0.1:8000/ ,就能打开页面,如果想要更换端口号,在刚才的命令下加上指定的端口号就行.
...\> python manage.py runserver 8066
创建应用 经过上面的步骤,你的Django开发环境--这个“项目”已经配置完了,你就可以开始正式的干活了。在Django中,每一个应用都是一个Python包。Django自带工具,可以帮你生成应用的基础目录结构,这样你就能专心写代 码,而不是创建目录了。
项目VS应用 你可以把应用理解为实现某个具体业务功能的模块,项目则是配置和应用的集合,一个项目中可以包含多个应用。
我们将在我们创建的 demo_proj 工程中的 manage.py 同级目录下创建投票应用。这样它就可以作为顶级模块导入,而不是 demo_proj 的子模块。在命令行模式下将路径切换到 demo_proj 工程中的 manage.py 同级目录下,并执行命令:
...\>python manage.py startapp demo_app
这里会创建一个demo_app应用,他的目录结构如下:
编写第一个视图 准备工作都以做好,让我们来编写第一个视图。打开demo_app/views.py,输入如下代码
这是一个简单的视图,如果我们要看到他的效果,我们需要配置URL映射,在 demo_app 目录里新建urls.py文件,你的 demo_app 目录结构应该是这样
在刚新建的urls.py 文件下输入代码:
下一步我们要在项目的 URLconf 文件中指定我们创建的 demo_app.urls 模块,在 demo_proj 根目录下的urls.py文件新增如下 代码:
启动服务,看是否能正常运行: python manage.py runserver
然后用浏览器访问 http://localhost:8000/demo_app/,你就会看到
Hello, world. This is your first Django
解释下运行原理:
1. 当在浏览器输入 http://localhost:8000/demo_app/ 这个网址时,服务务器接收到这个请求,demo_proj 目录下的urls.py 会对发送过来的url作路由分析,当他发现请求地址有 demo_app 时,会把路由请求转发到 demo_app 这个app下的 urls.py 文件继续做路由分析决定
url('demo_app/', include('demop_app.urls')),
2. 在 demo_app 中的urls.py接收到这个请求,就决定了由该目录下的views.py 中的 index 方法来处理该请求。
path('', views.index, name='index'),
3. views.py 文件中定义的index 方法,就返回 Hello, world. This is your first Django
def index(request): return HttpResponse("Hello, world. This is your first Django")
4. 浏览器接收到服务器发送过来的返回信息,在浏览器上显示 Hello, world. This is your first Django . 至此,一个最简单的但也是完整的HTTP请求已经完成,在后续我们将还会将学习到如何处理GET请求和POST请求。
沙盒环境
在实际的开发过程中,不同的项目也许对Python的版本有不同的要求,或者不同的项目依赖的第三方包的版本有不同要求,这 就要求我们在一台机器上创建多个Python运行环境,VirtualEnvWrapper为此供了一些便利的命令行上的封装。使用沙盒环境 的好处:避免了项目之间的第三方包依赖,如A项目依赖django1.2.5,B项目依赖django1.3。
为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一翻。沙盒环境就相当于一 个一个不同的盒子,在这个盒子里安装的任何软件包都不会影响到其他和盒子。
常用操作命令如下:
#安装`virtualenvwrapper`
pip install virtualenvwrapper-win
# 创建沙盒环境
mkvirtualenv 虚拟环境名称
#显示已创建的虚拟环境
workon
# 进入到某个虚拟环境中
workon 沙盒环境名称
# 退出当前虚拟环境
deactivate
# 删除制定的虚拟环境
rmvirtualenv XXX
# 安装指定python版本的虚拟环境
mkvirtualenv --python==+(指定的python路径) +虚拟环境名称
# 环境变量的配置
virtualenvwrapper创建的虚拟环境都在默认的目录内, 如果你想更改到别的盘 可以在 此电脑->右键->属性->高级系统设置->环境变量->系统变量 中添加一个参数 WORKON_HOME 并更改参数的值为所需要的路径,之后创建将默认到你所需要的路径中