您的位置:首页 > 编程语言 > Go语言

大后天就开学了,今天Django的学习总结一下

2019-08-20 15:58 1011 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/weixin_44449518/article/details/99838934

Django学习(2019 / 8 / 20)

今天呢,简单学习了几个关于Django的知识,也算是正式学习Django的第二天了吧,感觉还可以,也可能是我这个 小白 临死前的挣扎吧。
今天呢,也收到一个不好的消息:说好的27号之前到校,结果23号就要开学了,马上就要步入大二学哥的行列了,有点激动,不知道遇见小学弟小学妹以后,他们会不会叫我学哥呢。不扯了,说今天的正事:
在今天捣鼓Django期间呢,干了点别的事,把 Virtual Box虚拟机中的 Ubantu转移了一下存放路径,并且把Ubantu虚拟机打了个压缩包,备了个分。备份的最初目的呢,就是害怕以后某一天,我的电脑硬盘 OVER 了,我的学习成果不都挂了吗,So,今天上午干了这么个事,把Ubantu虚拟机整个存放目录里面所有文件都打了个压缩包

这里说明一点,之所以把Ubantu虚拟机整个存放路径都打包压缩,是因为不想给自己添乱,因为你如果只打包虚拟硬盘的话,转移到别的电脑上之后,你之前做的虚拟机备份就都没了。当然还有别的办法,知乎上某某大神说的需要对某某文件挨个重新注册的办法,我感觉没有这个来的痛快,把整个目录打包压缩,放到别的电脑上,解压以后直接双击打开就完美地转移了。当然,百度上搜到的自称为某某大神的某某小弟——扯淡的虚拟机转移办法更是相当麻烦

不扯淡了,下面开始重点:

今天呢,成果吧,挺多的,完成了使用 MVT的一个小小的案例,说实话吧,也就这么点东西,不难,容易。把思路理顺了就好了。

咱先来看一看这个小小的案例:

下面呢,我就陈述一下上面这个图片究竟表达了啥:
首先呢,我们在浏览器里输入
127.0.0.1:8000
的时候,默认进入主页面(上图四个叠加的浏览器窗口从上往下数第一个),当我们点击主页面上的链接(上图主页面带下划线的蓝色字"点击进入藏书阁")的时候,默认跳转到
127.0.0.1:8000/books
页面(上图从上往下数第个叠加的浏览器窗口),当我们点击"神雕侠侣"这本书的目录时,跳转到
127.0.0.1:8000/books/1
页面,此时显示所有英雄人物以及英雄人物所对应的技能。这里,还有最后一个叠加的浏览器窗口,表达的是:当我们点击一本书,没有对应的英雄人物的时候,就出现这个界面。

好吧,我承认,我一个初学小白刚看到这个案例的时候,确实懵了,不知道从哪里下手。实际上呢,通过分析,可以看出来实际上我们只需要完成URL的设计 还有模板的展示就行了。就这两个 任务,没别的了。那咱接下来,就进入主题吧,当然,在代码上来之前,还是需要先进行思路整理的,我会在下面每一段中都把思路理顺了再上效果图:
首先呢,我们需要把Django项目以及应用创建好,配置好相关数据,然后创建管理员账户,把后台页面管理一下

【1】创建一个Django项目

django-admin startproject t1

【2】进入t1目录,创建 应用
cd t1
然后
python3 manage.py startapp a1

【3】我们需要在models.py文件中自定义模型类,自定义完成之后需要迁移文件,然后再生成数据表
cd a1
然后
vim models.py
,然后,如下图所示输入相应内容,再然后 保存退出,保存退出VIM之后,接下来就是进行 迁移文件
python3 manage.py makemigrations
,生成迁移文件之后,就是根据迁移文件生成表
python3 manage.py migrate

【4】我们需要进入后台页面,就需要先创建一个用户
python3 manage.py createsuperuser
(在这之前,还需要修改 settings.py 文件,进行本地化。这里就不多说了,可以看上一我的篇博客的具体操作),然后,我们可以进入后台页面(
127.0.0.1:8000/admin
),然后进行简单数据的添加。当然,我们这里也可以更改一下后台界面的显示,通过
admin.py
这个文件中进行设置,设置如下:这里,我们可以自定义显示,
list_disply = ['','','']
来添加显示的信息。
下面是一张更改显示内容之后的效果图:

项目也创建完了,应用也添加了,管理界面也设置好了,数据也加的差不多了,下面就开始正题

进入正题,跟着我的理解开始一步一步完成任务:

【1】第一步,我们需要建立模板文件夹:在项目根目录下新建一个

templates
的目录,然后,在这个目录下在新建一个
Boos_Info
目录
(这是为什么呢,我吧,看人家书上说的,要养成良好的习惯,因为一个项目里面可能放着很多个应用,为了区分不同应用的不同模板文件,需要建立这样一个文件夹)
,这里呢,刚开始我们不知道要放什么文件,我们就先建好了,等待会用到了,先添加。(
这里呢,还有一个地方需要注意:我们需要在setting中把模板的目录添加上,如下图中白色标记处所示
),这里借助了os模块的拼接路径,这里
BASE_DIR
是项目的绝对路径,即无论项目存放在哪里,都可以通过这个来返回项目的绝对路径。
【2】第二步呢,我们需要在 应用中新建一个
urls.py
的文件,这个文件呢,依我的理解,就是一个向导,当你把URL交给它的时候,他会匹配出你需要的下一步操作是什么,去执行哪一个任务。那么这个文件里到底要写什么东西?第一个,要导入一个模块
from django.conf.urls import url
,导入完成之后呢,我们需要配置url
urlpatterns[url(r'^XXX$',views.YYY),url(r'^MMM$',views.NNN),]
,这是URL配置的格式,这里的XXX MMM都是正则表达式,也就是咱二级页面后面的网址,比如说
**index / books**
,这里的 YYY NNN呢,就是你views这个文件里面自定义的url函数。
这里呢,先这么理解,咱呢,接着往下走,等把整个流程都走完了回来再看,就轻松了。
先把刚刚写的最后的效果图放到下面:
【3】我们需要配置
原来就存在的 urls.py文件
,是的,不是你新建的urls.py,我们接下来配置的是原本就存在的 urls.py 文件。这里呢,我们需要做这样一件事,在原本的
urlpatters = [XXX,]
XXX,
后面,加上它
url(r'^',include('a1.urls')),
这里呢,是 当浏览器请求一个网址的时候,Django实际上只保留域名后面的东西,比如说吧,这里我们请求的是
127.0.0.1:8000/index
,那么实际上Django接收到的有用的就只有 /index。然后呢它会拿着这个
/index
,先到这个原来就有的
urls.py
文件中进行正则表达式匹配,这里呢,
/index
前面的
/
是不会参与正则表达式匹配的。匹配到
url(r'^',include('a1.urls')),
之后,会拿着
/index
再去应用
a1
下面的
urls.py
文件中进行匹配,当匹配的 上图中
url(r'^index$',views.index)
的时候,会到 应用
a1
views.py
文件下去找
index
函数,然后根据
index
函数返回值去模板中拿数据生成页面返回给浏览器。大体流程就这样,我们接着往下走。下面是原来就存在的 urls.py 文件的怕配置信息:
【4】第三步呢,我已经比较详细的描述了整个流程,我们现在,去
views.py
中自定义url函数。下面是效果图。这里呢,实际上,这里我们完成了两个任务:
通过模型类,把数据取出来,再通过 模板文件生成一个完整的Html页面返回给浏览器。
,这里简单描述一下,我们与M T进行交互,实际上需要三个过程(加载模板文件/定义模板上下文/模板渲染),这三步分别是返回模板对象,然后给模板传递数据,最后整合内容生成html文件。只不过呢,这里Django的 render函数已经帮我们完成了,并且为了方便使用,都封装在了一起。所以我们这里,只需要给render传入三个参数:
request / 模板文件所在的目录 / 一个字典类型的数据(里面存放着需要传给模板的参数)

【5】接下来,就是去配置我们的模板文件,我们的模板文件都是Html文件,我们可以在模板文件里写入代码执行,只不过这些代码都被放在特定的代码块中
{{content}}
,效果图如下:

这里呢,基本上就结束了,我说完了,大体上我只说了一下思路,走了大部分流程。思路也理清楚,实现起来就很简单了。这个小小的可能给大神们连练手都算不上的案例呢,我也是感觉挺简单的,对于我这样的初学者来说呢,掌握起来也并不吃力,做一遍这个小案例,基本上就都通顺了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: