介绍开发环境的准备,安装 Python,安装 Virtualenv虚拟环境,安装 Django,安装Visual Studio Code。并开始一个新项目,创建新的应用。
介绍开发环境的准备,安装 Python,安装 Virtualenv虚拟环境,安装 Django,安装Visual Studio Code。并开始一个新项目,创建新的应用。
Django是一个用python编写的Web框架。Web框架是一种软件,基于web框架可以开发动态网站,各种应用程序以及服务。它提供了一系列工具和功能,可以解决许多与Web开发相关的常见问题。安全功能、数据库访问、会话、模板处理、URL路由、国际化、本地化等功能,不需要程序员再开发,Django框架已经提供了这些功能。使用Django框架,能够以标准化的方式快速开发安全可靠的Web应用程序,无需重新发明轮子。
Django是用python编写的最流行的web框架之一。它绝对是最完整的,提供了各种各样的开箱即用的功能,例如用于开发和测试的独立Web服务器,缓存,中间件系统,ORM,模板引擎,表单处理,基于Python单元测试的工具接口。Django 还附带电池管理,提供内置应用程序,例如身份验证系统、带有自动生成的 CRUD 操作页面的管理界面、联合提要 (RSS/Atom) 的生成、站点地图等。甚至在django中内建了一个地理信息系统(GIS)框架。
Django已经存在了相当长的一段时间了。经历了很多实践项目,证明了它是一个成熟,可靠和安全的后端框架技术。
在使用django之前,基本的设置安装包括Python,Virtualenv和Django。使用虚拟环境不是强制性的,如果开发者是一个初学者,那么最好形成一个良好的开端。在用 Django 开发一个网站或者一个Web项目的时候,不得不安装外部库以支持开发是必须的事情。使用虚拟环境,使得开发的每个项目都会有其独立的环境。每个包之间的依赖关系不会发生冲突。同时也能在不同Django版本上运行项目。
可到网站 https://www.python.org/ 上下载Python的面向各种平台的最新版本。寻找具有不同操作系统的 Python, 适用于 Windows、Linux/UNIX、macOS。设置好环境变量path
,能够在命令行中执行python
、pip
等命令。
虚拟环境是Python 解释器的一个私有副本,在这个环境中你可以安装私有包,而且不会影响系统中安装的全局Python 解释器。
虚拟环境非常有用,可以在系统的Python 解释器中避免包的混乱和版本的冲突。为每个程序单独创建虚拟环境可以保证程序只能访问虚拟环境中的包,从而保持全局解释器的干净整洁,使其只作为创建(更多)虚拟环境的源。使用虚拟环境还有个好处,那就是不需要管理员权限。
输入以下命令可以检查系统是否安装了virtualenv:
$ virtualenv --version
Linux版的安装:
$ sudo apt-get install python-virtualenv
Mac OS X 版的安装:
$ sudo easy_install virtualenv
Windows版的安装:
对于python老版本,如python 2,在网址https://bootstrap.pypa.io/ez_setup.py 下载ez_setup.py文件,执行以下命令:
c:\python ez_setup.py
c:\easy_install virtualenv
而对于python的新版本,可以直接执行pip命令进行安装:
pip install -i https://mirrors.aliyun.com/pypi/simple/ virtualenv
# 这里的 https://mirrors.aliyun.com/pypi/simple/ 是国内pyhton库文件的镜像网站,可以快速响应。
创建并进入到myweb文件夹,使用virtualenv 命令在myweb 文件夹中创建Python 虚拟环境:
$ virtualenv venv
myweb是项目文件夹,虚拟环境会被命名为venv, 当前myweb文件夹中就有了一个名为venv 的子文件夹,它保存一个全新的虚拟环境,其中有一个私有的Python 解释器。在使用这个虚拟环境之前,你需要先将其“激活”。如果你使用bash 命令行(Linux 和Mac OS X 用户),可以通过下面的命令激活这个虚拟环境:
$ source venv/bin/activate
如果使用微软Windows 系统,激活命令是:
$ venv\Scripts\activate
虚拟环境被激活后,其中Python 解释器的路径就被添加进PATH 中,但这种改变不是永久性的,它只会影响当前的命令行会话。为了提醒你已经激活了虚拟环境,激活虚拟环境的命令会修改命令行提示符,加入环境名:
(venv) $
当虚拟环境中的工作完成后,如果你想回到全局Python 解释器中,可以在命令行提示符下输入deactivate:
(venv) $ deactivate
在已经启动了venv的前提下,运行以下命令来安装django
pip install -i https://mirrors.aliyun.com/pypi/simple/ django
在网址 https://code.visualstudio.com/Download 上下载Visual Studio Code
的各平台最新版本,适用于 Windows、Linux(.ded对Debian, Ubuntu)、Linux(.rpm对Red Hat, Fedora, SUSE)、macOS。安装成功后,启动Visual Studio Code,在其环境中安装Python extension for Visual Studio Code
这个Python插件,在当前的IDE环境下,已经支持Python的开发了。
现在都准备好了!就可以开始一个新的项目了。
要启动一个新的 Django 项目,通过命令行,执行以下命令:
django-admin startproject mypro
# 这里 django-admin为django的管理命令,startproject为命令参数,mypro为项目名
命令行实用程序 django-admin
随 Django 自动安装。在运行命令之后,它将生成项目的基本文件夹结构。现在,这个项目的目录结构如下所示:
myweb/ <-- 高级别的文件夹
| --mypro/ <-- Django项目文件夹
| |--mypro/
| | |-- __init__.py
| | |-- settings.py
| | |-- urls.py
| | |-- asgi.py
| | |-- wsgi.py
| +-- manage.py
+-- venv/ <-- 虚拟环境文件夹
最初的项目结构由五个文件组成:
manage.py:
使用 django-admin 命令行实用程序的快捷方式。它用于运行与项目相关的管理命令。 使用它来运行开发服务器、运行测试、创建迁移等等。__init__.py:
这个初始化文件说明: 该文件夹是一个 Python 包。settings.py:
此文件包含项目的所有配置。项目过程会一直关注这个文件!urls.py:
这个文件负责映射项目中的路由和路径。 例如,如果想访问URL的路径 /query/ 中显示某些内容,则必须先在该文件中做映射关系。wsgi.py:
该文件用于部署的简单网关接口。暂时先不用关注它的内容,后续用到时将解释。asgi.py:
该文件是用于部署支持异步操作的网关接口。暂时先不用关注它的内容,后续用到时将解释。Django 安装了一个简单的 Web 服务器。 在开发过程中非常方便,这里不需要安装任何其他软件,就可以在本地运行项目。 可以通过执行以下命令来测试它:
python manage.py runserver
现在在 Web 浏览器中打开以下 URL:http://127.0.0.1:8000,应该会看到如图1所示的页面:
图1 服务器启动时的初始页面
要停用开发服务器时,可以使用组合键 Control + C来终止服务器的运行。
Django的应用是可以完成某项功能的Web应用程序,一个应用程序通常由一组模型(models,映射数据库表的设计)、视图(views)、模板(templates)、和测试(tests)组成。而项目是配置(configurations)和应用程序(apps)的集合,这个思想是将项目分解为几个模块(或应用程序),如图2所示,绿色方块是Django项目,黄色圆代表内部应用程序,并且红色圆代表通过 pip安装的外部应用程序。 一个项目可以由多个应用程序组成,也可以由一个应用程序组成。
图2 项目的内部与外部应用程序
注意:没有项目就无法运行 Django 应用程序,这是一种Django组织应用程序代码的方法,一个简单的网站完全可以写在一个应用程序中,后续以博文系统举例。
要创建Django的一个应用程序,请切换到 manage.py 文件所在的目录并执行以下命令:
django-admin startapp blogs
请注意,这里使用了命令参数startapp
,blogs
为应用程序名。通过这条命令,Django系统创建了以下的目录结构:
myweb/ <-- 高级别的文件夹
| --mypro/ <-- Django项目文件夹
| |--blogs/ <-- 新的Django应用程序(app)
| | |-- migrations/
| | | +-- __init__.py
| | |-- __init__.py
| | |-- admin.py
| | |-- apps.py
| | |-- models.py
| | |-- tests.py
| | +-- views.py
| |--mypro/
| | |-- __init__.py
| | |-- settings.py
| | |-- urls.py
| | |-- asgi.py
| | |-- wsgi.py
| +-- manage.py
+-- venv/ <-- 虚拟环境文件夹
了解一下创建的应用内每个文件的作用:
models.py
文件中的变更轨迹,从而保持数据库和 models.py 中所设计类的同步。现在创建了第一个应用程序后,然后进行项目配置,以便启用该应用程序。
请打开 settings.py (通过startproject命令参数创建项目时自动生成的文件,位于mypro文件夹内)文件并找到 INSTALLED_APPS 变量:
# 位于settings.py内
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
可以看到,Django 已经安装了 6 个内置应用程序。 它们提供大多数 Web 应用程序所需的通用功能,如身份验证、会话、静态文件管理(图片、javascript、css 等)的功能已经可以使用了。在这里,需要将新创建的的应用blogs添加到INSTALLED_APPS列表即可。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blogs',
]
为了区别内置应用(app)与自定义的应用(app),建议空一行来分开。使用前面图2中的正方形和圆圈的来类比,黄色圆圈是新建的blogs
应用程序,而django.contrib.admin
、django.contrib.auth
等内置应用程序是红色圆圈。
编写第一个视图。 体验一下用 Django 创建一个新页面的样子。在blogs 应用程序中打开 views.py 文件,并添加以下代码:
# views.py
from django.http import HttpResponse
def home(request):
return HttpResponse('Hello, World!')
在视图中设计一个Python函数,其用于接收 HttpRequest 对象并返回 HttpResponse 对象。 接收请求作为参数,并返回响应作为结果。 在这里定义了一个视图 home函数,它简单地返回一条 Hello, World!
消息。
现在必须告诉 Django 什么时候提供这个视图。 它在 urls.py
(位于mypro文件夹内) 文件中完成:
# urls.py
from django.urls import path,re_path
from django.contrib import admin
from blogs import views
urlpatterns = [
re_path(r'^$', views.home, name='home'),
path('admin/', admin.site.urls),
]
在上面的代码段中,添加了新行: re_path(r'^$', views.home, name='home')
,并从应用blogs导入了视图模块。Django 使用正则表达式来匹配请求的 URL。对于主页视图,使用的是 ^$ 正则表达式,它将匹配一个空路径,即主页。
启动服务器:
python manage.py runserver
在 Web 浏览器中,打开 http://127.0.0.1:8000访问主页。
博文最后更新时间: