sqlite大概而不简单的Django新手图文教程

 欢迎大家访问我的私房网站《刘江的博客和科目www.liujiangblog.com

 紧要分享Python
及Django教程以及有关的博客!

版权所有,转载需注明来源!

 

www.liujiangblog.com/blog/3/有该博客的修订版本!

 

 

正文面向:有python基础,刚接触web框架的初学者。

  环境:windows7    python3.5.1   pycharm专业版   Django
1.10版  pip3

 

作者:刘江  

一、Django简介

  百度宏观:开放源代码的Web应用框架,由Python语言编写……

  重点:一个大而全的框架,啥都替你考虑好了。

1. web框架介绍

  具体介绍Django之前,必须先介绍WEB框架等概念。

  web框架:
外人已经设定好的一个web网站模板,你学习它的条条框框,然后“填空”或“修改”成你协调需要的榜样。

  一般web框架的架构是如此的:

sqlite 1

 

  另外基于python的web框架,如tornado、flask、webpy都是在那些范围内展开增删裁剪的。例如tornado用的是温馨的异步非阻塞“wsgi”,flask则只提供了最精简和中坚的框架。Django则是一向利用了WSGI,并落实了绝大多数效率。

2. MVC/MTV介绍

  MVC百度百科:全名Model View
Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面呈现分离的措施社团代码,将业务逻辑聚集到一个构件里面,在改进和个性化定制界面及用户交互的同时,不需要再一次编辑工作逻辑。

  深切浅出解释:一种文件的团社团和管制情势!不要被缩写吓到了,这其实就是把不同类此外文件放到不同的目录下的一种办法,然后取了个巨大上的名字。当然,它带来的裨益有广大,比如前后端分离,松耦合等等,就不详细表明了。       

  模型(model):定义数据库相关的内容,一般位于models.py文件中。

  视图(view):定义HTML等静态网页文件相关,也就是这个html、css、js等前端的东西。

  控制器(controller):定义业务逻辑相关,就是您的要紧代码。  

  MTV:
有些WEB框架觉得MVC的字面意思很别扭,就给它改了一下。view不再是HTML相关,而是主业务逻辑了,相当于控制器。html被放在Templates中,称作模板,于是MVC就变成了M电视机。这实在就是一个文字游戏,和MVC本质上是同等的,换了个名字和叫法而已,换汤不换药。

3.Django的M电视机模型社团

  目录分开,就务须有体制将她们在内里举行耦合。在Django中,urls、orm、static、settings等起着举足轻重的法力。一个典型的业务流程是如下图所示:

sqlite 2

 

这就是说大家学Django学的是什么?

  1. 目录结构正式

  2. urls路由艺术

  3. settings配置

4. ORM操作

  1. 模板渲染

6.其它

 

二、Django项目实例

1. 程序安装

  python3.5、pip3及pycharm专业版自行安装。

(1)安装Django:

  这里只介绍较为简单的pip3命令安装形式。

  win+r,调出cmd,运行命令:pip3 install
django,自动安装Pypi提供的摩登版本。

 sqlite 3

sqlite,安装完成后如下图所示:

sqlite 4

(2)配置系列环境

中标安装Django后,在下图中的路径可找到django-admin.exe文件,将它进入操作系统环境变量中。这样在后头的调用会相比较有利。

sqlite 5

sqlite 6

sqlite 7

运作:django-admin help,能见到上边的始末表示OK。

sqlite 8

 2. 创建django项目

  在linux等一声令下行界面下,使用django提供的通令和vim也能展开项目开发。可是,这里推荐应用pycharm那一个最近最好的python开发IDE

,它效能强大,界面友好。(下边所有的操作都在pycharm中展开。)

  点击:file–>new
project,出现下边的对话框。

sqlite 9

选择Django栏目,输入项目名称,这里运用国际惯例的mysite。选用python解释器版本,点击create创造。

Django将自动生成上面的目录结构:

sqlite 10

与品种同名的目录中是部署文件,templates目录是html文件存放也就是M电视中的T。manage.py是django项目管理文件。

sqlite 11

3. 创建APP

  在各类django项目中可以蕴涵两个APP,相当于一个大型项目中的分系统、子模块、效率部件等等,互相之间相比独立,但也有牵连。

具有的APP共享项目资源。

  在pycharm下方的terminal终端中输入指令:

  python manage.py startapp cmdb

  这样就创办了一个称为cmdb的APP,django自动生成“cmdb”文件夹。

sqlite 12

 

4. 编纂路由

  路由都在urls文件里,它将浏览器输入的url映射到对应的政工处理逻辑。

  简单的urls编写方法如下图:

sqlite 13

5. 编纂工作处理逻辑

  业务处理逻辑都在views.py文件里。

sqlite 14

  通过地点多个步骤,我们将index那些url指向了views里的index()函数,它接受用户请求,并回到一个“hello
world”字符串。

6. 运行web服务

  现在我们曾经得以将web服务运行起来了。

  命令行的方法是:python manage.py runserver 127.0.0.1:8000

  但在pycharm中,你可以这样干:

  在上部工具栏中找到上边图示的图标。

sqlite 15

点击下拉箭头

sqlite 16

点击edit configurations

sqlite 17

在host中填入:127.0.0.1   port中填入:8000

OK确定之后,点击青色的三角形,web服务就运行起来了。

sqlite 18

按图所示,自动跳转到浏览器程序界面。展现的却是下图的404页面:

sqlite 19

修改一下url,添加“/index”,就一切ok了!

sqlite 20

迄今停止,一个最简单易行的django编写的web服务就开动成功了。

7.  返回HTML文件

  上边我们回来给用户浏览器的是何等?一个字符串!实际上这必将不行,平常我们都是将html文件重回给用户。

  下边,大家写这么一个index.html文件:

sqlite 21

  再修改一下views文件:

sqlite 22

为了让django知道我们的html文件在啥地方,需要修改settings文件的对应内容。但默认情形下,它正好适用,你无需修改。

sqlite 23

接下去,大家得以重复开动web服务。在浏览器刷新一下,你会看到带有样式的“hello
world”。

注:这里有个小技巧,在多次频繁重启服务时,由于端口未释放的因由,容易启动不了服务,修改一下端口就OK了。

8. 运用静态文件

  我们曾经得以将html文件返还给用户了,不过还不够,前端三大块,html、css、js还有各类插件,它们齐全才是一个完好无损

的页面。在django中,一般将静态文件放在static目录中。接下来,在mysite中新建个static目录。

sqlite 24

您的CSS,JS和各类插件都得以停放在那一个目录里。

为了让django找到这多少个目录,依旧亟待对settings举办配备:

sqlite 25

同等,在index.html文件中,能够引入js文件了:

sqlite 26

再也启航web服务,刷新浏览器,查看结果。

9. 吸收用户发送的数额

  上边,大家将一个元素齐全的html文件返还给了用户浏览器。但这还不够,因为web服务器和用户之间从未动态交互。

上面我们设计一个表单,让用户输入用户名和密码,提交给index这么些url,服务器将收取到那些数量。

  先修改index.html文件

sqlite 27

接下来修改views.py文件

sqlite 28

此时
,重启web服务时,会出错,因为django有一个csrf跨站请求珍惜体制,我们临时在settings文件元帅它倒闭,或者在form表单里添加一个`{%
csrf_token %}`标签。这里为了演示方便,大家使用临时关闭的点子。

sqlite 29

重新进入浏览器,刷新页面:

sqlite 30

输入点东西,然后我们在pycharm中得以见到相应的数目。

10. 归来动态页面

  大家收起了用户的多寡,但回来给用户的依旧是个静态页面,日常大家会基于用户的数量,进行处理后在回去给用户。

此时,django接纳自己的模板语言,类似jinja2,按照提供的多寡,替换掉html中的相应部分,详细语法入门后再深入学习。

先改造views.py文件:

sqlite 31

再改造index.html文件:

sqlite 32

重启服务,刷新浏览器:

sqlite 33

可以看到,我们赢得了用户实时输入的多少,并将它实时彰显在了用户页面上,这是个不错的竞相过程。

11. 采纳数据库

  流程走到这边,django的M电视机框架基本已经浮出水面了,只剩下最终的数据库部分了。

  下边我们固然和用户交互得很好,但并从未保存任何数据,页面一旦关闭,或服务器重启,一切都将再次来到原来状态。

  使用数据库是自然的,django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库。下边我们来看一看:

  首先是注册app:

sqlite 34

不挂号它,你的数据库就不知情该给哪个app创立表。

然后我们在settings中,配置数据库相关的参数,假使接纳自带的sqlite,不需要修改。

 sqlite 35

 再编辑models.py文件,也就是MTV中的M。

sqlite 36

此地我们创造了2个字段,分别保存用户的名字和密码。

接下去要在pycharm的teminal中经过命令创立数据库的表了。有2条命令,分别是:

python manage.py makemigrations

sqlite 37

再输入指令:python manage.py migrate

sqlite 38

修改views.py中的业务逻辑

sqlite 39

重启web服务后,刷新浏览器页面,之后和用户交互的数据都能保留到数据库中。任几时候都可以从数据库中读取数据,映现到页面上。

至此,一个因素齐全,主体框架展示清晰的django项目成功了,其实很简短是不是?

 

三、 Django总结

  作为python必须web框架的Django,它的功用强大,内容系数,但与此同时也意味限制颇多,灵活性低,可修改性差,那就是鱼和熊掌不可兼得了。我们学习Django,其实就是读书一个软件,要知道它的基本原理,把握它全体框架,牢记一些主干规则,剩下的就是不断深切细节,然后熟能生巧、经验多少的题目了,不存在多高深的不行控制技术。 

  关于读书模式的提出:学习其他东西,不要直接扎入细节,应该先通晓它的外围知识,看看它的完好架构,再攻读它的主题内容,然后才是尖锐学习,打磨技巧! 

全文完,有窘迫之处恳请指正,觉得不错,就点赞协助一下。欢迎访问我的私有博客及教程网站liujiangblog.com

另外,版权所有,转载需授权。

网站地图xml地图