http://blog.sysuschool.com/u/mygod/index.html
请稍候,载入中。。。
 
请稍候,载入中。。。
2020-7-13 23:34:00
博文_小结python的Django框架

 

疫情期间,看了不少教程,对jQueryHTML5CSS3有了点新认识,对手机端的页面布局也有所了解,也学了点mysqlredis数据库、python的网络编程,什么wsgi框架协议、协程进程、udptcp等,最近在学习pythonweb开发的一个框架Django,这是一个基于数据库的web开发框架,可以开发类似淘宝的购物网站(当然淘宝要复杂的多),借博客小结下学习Django框架和python的收获和困惑。

 

以前一直偏向做纯粹的前端,如页面排版设计,用好htmlcssJavaScript就好,自接触后端,感觉自己就是小白一个,感觉学得越多,不懂的东西越多,不知什么时候能学完,不过也挺有意思。现在的网站,早就不是以前的纯网页制作了,现在的网站,各种各样的功能,都得靠程序来实现,前端可以用htmlcssJavaScript,后端要用数据库、服务器技术。

 

Django框架开发网站,当然也是包括前后端的,开发一个网站,还是要有分工,也分前端设计、后端开发。解释下框架,就是大牛们开发出来,用来做程序开发的,提高效率,可以把精力集中在业务逻辑上,一般框架用模块化来提高程序开发效率。

 

Django分三个模块,称为MTV

M为模型,通过设计模型类操作数据库的写入读取

V为视图,通过视图函数或类视图,处理http请求、进行逻辑处理、然后返回应答给浏览器

T为模板,视图响应时调用模板,渲染页面给浏览器

 

Django网站开发大致流程,首先需求分析,根据需求划分模块,设计数据库,分析页面的功能并且实现,这里较重要的是前面模块、功能的分析,否则后面会相当麻烦,现在也能理解如果客户在开发后期提出新要求,对于项目组来说不亚于一场灾难。

 

前面这部分没有实战经验,看不出重点,比如一个购物网站,划分出用户模块、商品模块、订单模块、购物车模块和后台管理模块,设计相关数据库,看了一个天天生鲜的案例,设计了11个数据表,数据库表还涉及一对多的处理等等。

 

在模块和数据库设计好后,就是具体怎么通过MTV来实现了。

 

说明下,用Django设计的网站,在服务器端得安装Django,要用mysql数据库,也得安装,Django是基于python语言的,这里有个虚拟环境的问题,需要在服务器安装python虚拟环境,暂不总结这块。

 

接下来要做的是,根据数据库的设计,进行模型类的设计,需要在项目目录的models.py中定义,一个模型类对应一个数据表,根据模型类生成数据表,数据库需要在服务器mysql下自行创建,需要在Django框架的settings.py中配置,Django可以让你不用写SQL语句,直接操作类来操作数据库,模型类中的类属性对应数据表的字段。这块就是所谓的M,里面包括怎么操作模型类对数据库记录进行增删改查。

 

然后是V模块,包括两部分,url的配置和视图函数的定义,url配置主要解决:将用户的请求与视图函数建立对应关系,所谓用户请求,即http请求,这个请求可能来自用户浏览器地址栏的输入、页面中的超链接、静态文件的请求、表单的提交、ajax的请求等,接收到http请求后,url配置指向对应的视图函数,让视图函数来处理请求,返回应答给浏览器,比如返回一个页面,返回时可能调用模板文件。

 

视图函数定义在应用模块的views.py文件中,也就是一个一个的函数,比如访问一个网站,请求indexurl配置可以指向一个index的函数,让函数返回一个页面给用户。

 

视图函数可用一个request对象来接收请求的参数,如浏览器的输入地址,当然还包括getpost传入的参数等,利用request还可以获得cookiesession参数,用来推送广告,记住用户名,判断用户是否登录等。视图函数处理逻辑后,须返回一个httpresponse类或子类jsonresponsehttpredict对象做响应,httpredict可以实现重定向,即跳转;jsonresponse可以返回一个json数据,这主要用于ajax请求,ajax可以实现页面的局部刷新,减少服务器的负担;还有httpresponse有一个方法render可以调用模板文件,并将视图函数的上下文数据传递给模板文件。

 

模板及DjangoT模块,可以根据网站的需求定义一系列的模板文件,给视图函数调用,主要要划分出网站页面哪些是相同和特殊的部分,这里涉及模板变量、模板标签、过滤器的使用。

 

这就是目前我理解的Django框架开发的大概过程,里面涉及的细节实在太多了,感觉之前学习的内容,按部就班,就像上班朝九晚五,到了这部分,感觉就象突然加速了,飞起来了,一下要到这里设置个什么,那里写个什么,时不时的还冒出个python用法,以前压根不知道的,化了差不多一个月,才摸清Django开发的主要过程,原以为比较熟了,结果看到项目实战案例,又晕了,什么防csrf攻击、反向解析避免路径问题,前面的一些原以为可以忽略的细节到这里突然变的重要了,而且成为了习惯的习惯,现在想提高进度,感觉非常难,往往一个用法,一个写法要反复看几遍,甚至一个模块看完了,再看一遍才能整个大概的明白,讲课的那个讲的也有道理,学到这个程度要学会看框架的文档说明,说白了,就得自己去看去用,不过就目前我还没有这个打算,毕竟现在也不会去真正去做全栈开发,想着看看教程,看看别人怎么做的,怎么用的,用到什么样的技术,这是我目前想法,一个新东西冒出来,即恐惧又新鲜,就是这样,哈哈。

 

关于Django框架里的东西实在太多了,要写出来,每个模块都有一堆东西,以后看情况吧,这块不想深究,只想过一遍,为后面的数据爬虫、人工智能、机器学习垫个底,之所以不敢跳过去,主要是觉得别人既然这么开设培训课程,应该有些东西需要铺垫,主要怕错过这块。

 

最后说明下,教程来自两年前淘宝买的视频教程,是某个国内较有名的IT培训机构的(不方便说明),有些讲的真不错。

 

mygod | 阅读全文 | 回复(0) | 引用通告 | 编辑
发表评论:
请稍候,载入中。。。
公告
请稍候,载入中。。。
时间记忆
请稍候,载入中。。。
最新日志
请稍候,载入中。。。
最新评论
请稍候,载入中。。。
最新回复
请稍候,载入中。。。
我的好友
我的相册
站点信息
请稍候,载入中。。。
生活因感动而精彩,理想在创造中放飞
Powered by Oblog.