Python学习第118天(Django回头看:MVCMTV、Django初步、static、url命名、分区)

摘要:
pd{2}),views.add_1')]就是这个样子,然后是关于使用刚刚收到的前方参数的方式获取一个简单的注册表先说一下index.html文件的样子  姓名年龄爱好篮球足球乒乓球提交然后是views部分的文件  defregister:ifrequest.method=="POST":printprintreturnHttpResponse("success!

今天开始重新复习,内容看的也更连贯一些,下面开始内容复述,先说一下MTV和MVC的问题

MVC(modles views controller)即web应用模型,可以指代各种各样的模型

modles即为模型

views 视图,特指用户看到的html文件

controller控制器

MTV(modles template views)即为Django模型,这里可以说Django是MVC模型,但是mvc模型却不能说自己是Django模型

modles与操作数据库内容相关

template模板

views视图方法

这里先引用一下上次的图片进行一个展开说明

Python学习第118天(Django回头看:MVCMTV、Django初步、static、url命名、分区)第1张

大致是上面的一个过程,下面是Django项目初步实现的流程

Python学习第118天(Django回头看:MVCMTV、Django初步、static、url命名、分区)第2张

上图在Google的浏览器里面画画也不错(喜欢这个logo)

在进行Django项目书写的过程中,我们修改了Django项目中的html文件后会自动更新

其原因在于Django项目中的settings.py文件

DIRS[ os.path.join("BASE_DIR" , "Templats")]

而其中的BASE_DIR =os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

和之前我们写的一样,非常熟悉的感觉

这里需要说起的就是html文件的渲染问题,首先html文件经过Django进行渲染,目的是更改掉其中{{ 变量 }},然后再通过网络反馈渲染好的文件

那么如何导入jQuery的文件呢?

先说一个错误的方法:

存放在templates文件中,在通过from导入,显然不行(错的花了我十分钟,一句话就说完了,很浪费)

下面说正确的使用方法:

Python学习第118天(Django回头看:MVCMTV、Django初步、static、url命名、分区)第3张

其实更加正确的是将一些静态文件分类放在对应的app当中去,以便于更好分类使用,此时的需要修改的内容为:

STATIC_DIRS = (os.path.join(BASE_DIR , "blog" , "static"))

接着来说url命名的问题(也涉及到正则部分的内容)

此时url先进行设置(未命名系列)

urlpatterns =[
    path('admin/', admin.site.urls),
    path('index/', views.index),
    path('addbook/', views.add),
    path('article/(d{4}) , views.add_1')
]

随后我们在views中对应进行书写  

def add_1(req,year):
    return HttpResponse("今年是%s"%year)

这样就基本实现了无命名的分组

当然也支持多个分组

urlpatterns =[
    path('article/(d{4}) /(d{2}), views.add_1')
]

函数部分修改也是很简单:

def add_1(req,year,mouth):
    return HttpResponse("今年是%s %s"%(year,month))

然后是有命名的分组,这里需要注意前面的命名要和后面的名字保持一致  

urlpatterns =[
    path('article/(?p<year>d{4}) /(?p<month>d{2}), views.add_1')
]

就是这个样子,然后是关于使用刚刚收到的前方参数的方式获取一个简单的注册表

先说一下index.html文件的样子  

<form action="/register" method="post">
   <p>姓名<input type="text" name="user"></p>
   <p>年龄<input type="text" name="age"></p>
   <p>爱好<input type="checkbox" name="hobby" value="1">篮球
          <input type="checkbox" name="hobby" value="2">足球
          <input type="checkbox" name="hobby" value="3">乒乓球
   </p>
   <p><input type="submit">提交</p>
</form>

然后是views部分的文件  

def register(request):
    if request.method=="POST":
        print(request.POST.get("user"))
        print(request.POST.get("age"))
        return HttpResponse("success!")
    return render(request,"register.html")

这里我们可以看到,request.POST返回的其实是一个字典,所以我们可以通过get方法进行提取,这样就能获得前端所输入的参数

url假名的设置

设置:path('article/(d{4}) , views.add_1' ,name="reg")

随后在html文件中的a标签中{ % url “reg” % }

就可以照常使用,这样方便后期的修改,只用修改url文件前半部分内容

url的分组方式

在app下面信件urls.py文件

1.导入from django.conf.urls import url,include

2.更改app的url对应方向url(r'^blog/', include('blog.urls'))

3.将原来的url存到app下的urls.py文件中

4.便于分组

以上就是今天的所有复习内容,知识得到巩固,但是没时间联系,明天是练习时间。

免责声明:文章转载自《Python学习第118天(Django回头看:MVCMTV、Django初步、static、url命名、分区)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇12.手机端如何拖动组件--从零起步实现基于Html5的WEB设计器Jquery插件(含源码)关于研发规范化的一些实践和思考下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

4.1. 如何在Windows环境下开发Python

4.1. 如何在Windows环境下开发Python 4.1. 如何在Windows环境下开发Python 4.1.1. Python的最原始的开发方式是什么样的 4.1.1.1. 找个文本编辑器,新建个.py文件,写上Python代码 4.1.1.2. 打开Windows的cmd,并且切换到对应的python脚本所在目录 4.1.1.2.1....

包管理器conda与Python

什么是conda? conda是一个包管理器。值得注意的是,它不仅仅是Python的包管理器,而是一个通用的包管理器,当初设计时被用来管理任何语言的包。在目前来看,conda环境中所有语言的包管理,都是为了Python而服务的。 Anaconda与Miniconda Anaconda是一个Python的发行版,内置了众多Python包和附加软件(pydat...

centos7安装python 与卸载python

安装python 下载Python安装包 1 cd /usr/local/src 编译时要提前装好gcc编译器和zlib zlib-devel 1、下载文件 1 wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz 2、解压 1 tar -zxvf Python-3.6.0...

js正则表达式 URL格式匹配详解

0、URL格式 protocol :// hostname[:port] / path / [;parameters][?query]#fragment [;parameters]没见过 这里就不做相关匹配了 1、代码及运行结果 'use strict'; { // URL地址匹配格式: protocol :// hostname[:port...

Spark python集成

Spark python集成 1、介绍 Spark支持python语言,对于大量的SQL类型的操作,不需要编译,可以直接提交python文件给spark来运行,因此非常简单方便,但是性能要比scala或java慢。对于常规任务,可以使用python来编写,特殊任务还是建议scala编写。 2、使用pyspark启动spark shell(centos) 2...

一个关于vue+mysql+express的全栈项目(二)------ 前端构建

一、使用vue-cli脚手架构建 1 <!-- 全局安装vue-cli --> 2 npm install -g vue-cli 3 <!-- 设置vue webpack模板 --> 4 vue init webpack my-project 5 <!-- 进入项目 --> 6 cd my-project...