Django基础篇之简介和项目创建
python安装
想要使用django,前提是要安装好python软件及运行环境,因为django是基于python写的。具体python安装过程详见:python3 环境搭建
查看安装的python版本
$python -v python 3.7.6
python -m 参数释义(将库中的python模块用作脚本去运行),以下是摘要网上资料,详见:python 中 -m 的典型用法、原理解析与发展演变
还有一种常常被人忽略的场景:“python -m pip install 包名”。我们可能会习惯性地使用“pip install 包名”,或者做了版本区分时用“pip3 install 包名”,总之不在前面用“python -m”做指定。但这种写法可能会出问题。
很巧合的是,在本月初(2019.11.01),python 的核心开发者、第一届指导委员会 五人成员之一的 brett cannon 专门写了一篇博客《 why you should use "python -m pip" 》,提出应该使用“python -m pip”的方式,并做了详细的解释。
他的主要观点是:在存在多个 python 版本的环境中,这种写法可以精确地控制三方库的安装位置。例如用“python3.8 -m pip”,可以明确指定给 3.8 版本安装,而不会混淆成其它的版本。
pip包管理工具
pip 是一个现代的,通用的 python 包管理工具。提供了对 python 包的查找、下载、安装、卸载的功能。
在安装python的时候,如果勾选了安装pip的话,程序会自动把pip工具安装上,如果在安装python的时候没有勾选安装pip,则需要手动安装pip工具,安装过程详见:python pip 安装与使用
easy_install、pip以及pip3的区别
easy_install是python2下很早版本的包管理工具,pip是python2下的easy_install改进版,而pip3是针对python3下的包管理工具,如果电脑上只安装了python3,则pip和pip3工具没有区别。
查看已经安装的pip版本
$python -m pip -v pip 19.2.3 from d:\program\python37\lib\site-packages\pip (python 3.7)
安装第三方包
$python -m pip install package_name # 默认安装最新的包 $python -m pip install package_name==version # 安装指定version版本的包 $python -m pip install package_name -i 包的源地址 # 通过-i指定包下载的源
查看某个已安装包
$python -m pip show --files package_name
检查哪些包需要更新
$python -m pip list --outdated package version latest type --------------------- ---------- ---------- ----- asgiref 3.2.3 3.2.7 wheel certifi 2019.11.28 2020.4.5.1 wheel pip 19.3.1 20.0.2 wheel setuptools 41.2.0 46.1.3 wheel
升级第三方包
$python -m pip install --upgrade package_name
卸载第三方包
$python -m pip uninstall package_name
升级pip工具
$python -m pip install --upgrade pip
什么是django
django是一个由python编写的具有完整架站能力的开源web框架。使用django,只要很少的代码,python的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的web服务。
mvc框架和mtv框架
做过web开发的同学,尤其是java语言web的开发,对mvc框架设计应该不是陌生的, 这也是架构模式中的一种,通过三个不同的层面结构进行设计,即m表示model(模型)层,v表示view(视图)层,c表示control(控制)层,如下图所示:
而django作为web开发的构架,也有自己的构架设计模式,django框架的设计模式借鉴了mvc框架的思想,也是分成三部分,不同之处在于它设计的三部分为:model(模型)层、template(模板)层和view(视图)层,也就是mtv框架,如下图所示:
-
model(模型):负责业务对象与数据库的对象(orm)
-
template(模板):负责如何把页面展示给用户
-
view(视图):负责业务逻辑,并在适当的时候调用model和template
此外,django还有一个urls分发器,它的作用是将一个个url的页面请求分发给不同的view处理,view再调用相应的model和template
其实django是一个非常丰富的web构架,集成了很多的内容和组件,基本上可以包含你要开发所涉及到的所有内容,更多详情请自行阅读: django官网文档
好了,知道了django基本内容后,是不是跃跃欲试了呢,那咱就开始django环境的安装及项目的创建吧。
django环境安装
在通过本文一开始的内容,假设现在你已经熟悉并安装好了python环境及pip工具,如果你还没有搞定以上的环境,请自行百度配置好所需要的环境,以下会通过两种方式介绍怎样创建一个django项目应用,come on!!!
在创建项目应用之前,咱必须先安装django程序,通过pip工具进行安装,这里选择的是2.2版本,如下所示:
$python -m pip install django==2.2.12 -i https://pypi.douban.com/simple # 下载指定版本
如果不想指定版本,可以直接使用以下命令下载最新的版本,如下所示:
$python -m pip install django -i https://pypi.douban.com/simple # 下载目前最新的版本
如果你还不想指定源也是可以的,但要承受安装过程受网络影响所带来的等待时间,尤其是安装比较大的程序,命令如下所示:
$python -m pip install django # 从官网上下载目前最新的版本
提示:这里为什么选择安装2.2的版本,而不选择目前最新的3.0版本,因为django每个版本都会有对应的支持周期,而我们也不想在实际项目中因为django版本影响带来更多的维护或升级,所以就选择了目前的lts(long-term support)版本,更多版本信息请参阅:django官网下载
在安装成功后,在python程序目录中会多出来django-admin命令/程序,也就是咱们后面要用来创建项目应用的命令,如下所示:
创建项目之命令行操作
创建项目
首先选择一个自己比较喜欢的文件夹存放创建的项目应用,比如我这里选择e:\works目录,打开cmd工具,切换到工作目录中,如图所示:
在工作目录中,输入以下命令即可创建一个django目录,假如你的项目名称是:myproject
$django-admin startproject myproject # 创建一个名称为myproject的项目
操作完成后,没有任何提示内容,所谓没有信息就是最好的结果,这时咱们再通过tree -f
命令显示工作目录的结构,如图所示:
通过以上操作,咱就完成了一个没有任何内容和功能的项目的创建,那怎么来运行这个项目呢,不急,往下看。
启动项目
在cmd命令提示界面下,切换到项目所在的根目录,输入以下命令即可运行项目,如下图所示:
$cd myproject $python manage.py runserver # 启动服务,监听默认地址和端口
提示:这里要记住manage.py管理命令是位于项目的根目录中,如果在创建项目后没有切换进项目目录,就会出现这样的错误信息:python: can't open file 'manage.py': [errno 2] no such file or directory
在启动项目之后,我们打开浏览器输入以上的服务地址和端口, 就能看到django默认的项目界面,是不是很开心o(∩_∩)o~~
那有同学可能会问了,我们可不可以使用别的端口,比如习惯用8080端口了,答案是肯定的,在启动项目的时候指定下端口即可,如下所示:
$python manage.py runserver 8080 # 启动服务,监听8080端口
当然最终我们的项目应用是要被别人能够访问的,总不能只能通过自己的本机客户端来访问对吧,这个时候在启动项目的时候修改指定服务所在主机即可的,如下所示:
$python manage.py runserver 0.0.0.0:8080 # 启动服务,监听当前主机的地址和8080端口
再分别打开浏览器访问地址看看效果,这里就不演示了,o(∩_∩)o哈哈~
创建app
项目和app的关系
project相当于学校,app相当于学校的学院
也就是说,project可以包含多个app
为什么要用app
方便在一个大的django项目中,管理实现不同的业务功能,从开发上也可以分离,一个同事负责一个app业务功能的开发
好了,说了这么多,那到底怎么创建app呢,其实也很简单的,还记得怎么启动项目吗,再打开cmd命令提示界面切换到项目根目录,比如我们要创建一个登录相关功能的app,名称为:login
,则输入以下命令:
$python manage.py startapp login # 创建一个名为login的app应用
从上图中可以看出在项目根目录下,多了一个login的子目录及相关的py
文件,这里面包含了框架中的model和view层,这时候如果再次启动项目,你会发现没什么不一样,因为我们没有添加任何的应用相关的功能,后续会有详细的介绍。
注册app
要想正常使用app,必须在settings.py
文件中进行app应用的注册,配置如下:
installed_apps = [ ... 'login.apps.loginconfig' # 新创建名称为login的app应用,推荐写法 ]
创建项目之工具操作
通过以上的操作,咱们已经熟悉了怎样创建django项目并启动,但这些操作都是比较简易的,如果后续进行开发,也这样通过命令和编辑相关文件添加内容,就显的很麻烦了,这时就需要找一个比较好的集成开发工具,这里选择的是:pycharm,下面就看看如何在pycharm中来创建项目和启动服务,go on!!!
这里假设你已经正确安装好了pycharm工具,如果还没安装配置好,同样请自行百度进行补课了。。。
创建项目
打开运行pycharm工具,如果是首次打开的话会提示你是要创建项目还是打开现有的项目,咱们就选择创建新项目好了,如图所示:
在打开的新建项目界面,按要求输入项目名称,比如:myproject
,存放目录还是e:\works
,这里根据你实际的情况填写即可,同时这里选择通过现有的解释器,这里暂不使用虚拟环境,如果你想了解虚拟环境及使用的话,可以点击阅读:python虚拟环境常用工具使用
再点击展开新建项目的more settings
选项,里面有输入对应的模板(template)的名称和新建app的名称,也就是如果你在这里输入了模板和app的名称,pycharm会自动帮你创建,如图所示:
点击create
按钮,等待项目创建完成,再通过pycharm查看创建完成的项目结构,如下图所示:
启动项目
通过pycharm工具创建的项目,怎么启动呢,这很简单的,点击项目名称边上的绿色三角形即可,会在工具下面多出一个窗口显示启动服务相关的输出信息,如下图所示:
这个时候再通过浏览器去访问,效果和命令行创建项目的效果是一样一样的,如下所示:
如果我想像命令行一样,指定不同的服务地址和端口来启动呢,同样也可以的,点击项目名称,展开菜单,点击edit configurations...
进行项目参数配置,在里面可以指定ip地址和端口号,如下图所示:
创建app
通过以上pycharm工具在创建项目的时候,可以同步指定创建一个app,那么如果通过pycharm再创建其他的app,怎么操作呢,通过选择tools
->run manage.py task...
,在弹出的命令提示符下,输入startapp rabc
,其中rabc
是app名称,如下图所示:
说白了,pycharm创建应用,也是通过集成了底层的操作命令执行的,这时再看看最终的项目结构,会发现多了一个rabc
子目录及相关py
文件,如图所示:
注册app
同样的,如果手工新创建了一个app应用,也是要在settings.py
中进行注册的,当然如果通过pycharm进行创建的app,工具会自动注册,如下所示:
installed_apps = [ ... 'login.apps.loginconfig', # pycharm创建app时自动注册的 'rbac.apps.rbacconfig' # 手工创建的需要手工注册添加 ]
小结
总结一下以上我们学习过的知识点:
- django是一个web构架,采用了mtv的设计模式,m(模型)、t(模板)、v(视图)
- 创建django项目命令:
django-admin startproject <项目名称>
- 启动django项目命令:
python manage.py runserver
服务地址-可省略
服务端口-可省略
- 创建django app应用命令:
python manage.py startapp <app名称>