15.Django添加一个功能模块的步骤(和SpringMVC类比)
这里介绍如何在Django里新建一个模块,这个例子还是最简单的例子
通过浏览器访问 http://localhost:8000/hello/然后返回一个欢迎页
我是做java web出身的,这里用python的Django来做,习惯性的会和SpringMVC去对比一下
其实,在我看来,这里用Django也没什么神奇的地方
用SpringMVC来做一个hello页面的时候,一个请求发送到tomcat以后,首先是请求映射器处理url,经过处理器适配器以后,找到处理这个请求的controller,处理完了以后经过视图解析器渲染视图,其实抛开框架xml里的配置以后,需要提供三部分代码
1.一个html文件用于渲染视图
2.一个controller用于处理请求,在controller里告诉框架自己的结果被渲染到那个页面
3.一个@RequestMapping用于配置url和controller的关系
其实,用Django也就这三部分。
html文件对应的是django里的模版文件(static和templates目录)
controller对应都是django里的views.py文件里定义的函数,同时这个函数需要用render告诉django自己要去那个模版,render里的第三个参数,其实就类比于ModelAndView里的Model携带的数据
@RequestMapping对应django里的urls.py文件里的配置(这里可能和sturts里在xml里配置映射更像吧,不过我对SpringMVC更熟,所以就暂且用SpringMVC来对比吧)。在urls.py里要告诉django请求来了,去那个views里的那个函数处理
下面看代码:
第一步:建立模版文件
1.在app目录下新建static和templates目录(这两个目录名字和路径是固定的,除非修改配置参数)
static用于存放css和js代码
templates用于存放模版代码(html格式)
2.编写模版文件(按照个人开发习惯,有人喜欢先写views.py文件里的逻辑)
备注:这个文件里 <link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">的static为setting.py里的STATIC_URL = '/static/'的值,所以,如果要改static文件夹的名字改这个参数就可以了,如果需要改static文件的路径需要设置STATICFILES_DIRS参数的值,如下配置中,就是把static文件放在项目根目录下的配置方式:
如果要把templates文件夹也放在项目根目录下配置的是TEMPLATES属性的值,如:
3.编写views.py(\hello_django\hello\views.py)文件
4.配置urls.py(\hello_django\hello_django\urls.py)文件
这里如果把所有的urls都管理在项目根目录下的urls.py中,随着请求的增多,这个文件会越来越难维护,就像Spring的配置文件一样,一般是在总的xml里引入各个分的xml,这里也可以使用这种思想。在每个app里建立自己的urls.py,在项目根路径下,引入这些urls就可以了,比如:
新建:\hello_django\hello\urls.py
在\hello_django\hello_django\urls.p引入
5.访问:http://localhost:8000/hello/
15.Django添加一个功能模块的步骤(和SpringMVC类比)的更多相关文章
- yii2自带的backend,frontend不够用,添加一个后台模块怎么做?
在复杂项目里,高级模板中的fontend.backend application明显不够,可以再添加另外的application. 例如添加一个seller application .步骤如下: 1, ...
- Arcgis Engine 添加一个Symbol符号样式步骤
public static void DrawPictureMarkerSymbol(IGlobe globe, String layerName) { //添加一个图层 ESRI.ArcGIS.Ca ...
- 添加一个功能Action
1,只用一个handler类,所有都事件的处理器都在一个handler类 handler要创建以Action为名称的方法 event要单独分开,继承KDEvent package com.kingde ...
- django 添加分页功能的包
Django pagination based upon the core pagination module
- 以用户注册功能模块为例浅谈MVC架构下的JavaWeb开发流程
JavaWeb应用开发,撇开分布式不谈,只讨论一个功能服务应用的开发,无论是使用原生的Servlet/JSP方案,还是时下的SSM架构,都有一套经过工程实践考验的最佳实践,这综合考虑了团队协作.项目管 ...
- Abp Zero——前端如何新增功能模块
为适应不同开发人员,abp rezo的UI实现了spa和mpa两套: spa--Single-page Application(单页面应用),默认"http://localhost/Acco ...
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
----------------------------------------------------------------------------------------------[版权申明: ...
- biweb添加新的模块
1.例如添加一个新闻模块,首先去纯净的项目的根目录复制出一个news文件夹到项目外 2.打开dreamweaver, 编辑 ->查找和替换 例如 新模块 叫 我的新闻,英文名叫mynews,则进 ...
- Linux驱动之建立一个hello模块
目标:在开发板上执行insmod hello.ko能在控制台打印出hello init:接着执行rmmod会在控制台打印出hello exit 建立一个hello模块的步骤如下: 1.建立一个hell ...
随机推荐
- USE [EPPM] [dbo].[REFRDEL_CLEANUP]
USE [EPPM] GO /****** Object: StoredProcedure [dbo].[REFRDEL_CLEANUP] Script Date: 2016/4/2 16:32:29 ...
- XJTU Summer Holiday Test 1(Brackets in Implications-构造)
B - Brackets in Implications Time Limit:2000MS Memory Limit:262144KB 64bit IO Format:%I64d & ...
- redhat 用yum安装的apache、mysql一般默认安装在哪个目录下?
使用yum安装成功后,使用rpm -qa | grep httpd和rpm -qa | grep mysql查看是否安装成功然后使用rpm -ql httpd和rpm -ql mysql查看安装文件都 ...
- 【SpringMVC学习09】SpringMVC与前台的json数据交互
json数据格式在接口调用中.html页面中比较常用,json格式比较简单,解析也比较方便,所以使用很普遍.在springmvc中,也支持对json数据的解析和转换,这篇文章主要总结一下springm ...
- 摘录 LDAP
1.LDAP就是 light DAP, 轻量级目录访问协议 LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写 LDAP标准 ...
- Python Windows文件操作
获得目录和文件名 os.getenv()获取环境变量 os.putenv()设置环境变量 os.getcwd() 获得当前目录 os.chdir(‘要设置的当前目录’) os.listdir() 返回 ...
- https 加载问题
https的网站,加载的资源要全部https,如果里面有http的资源,很多浏览器是加载不进来 要地址栏变绿,网站内部全部引用都是https的
- java.long中的类和方法
java.lang.Character.isUpperCase(char ch) 确定指定的字符是否为大写字符. java.lang.Character.toUpperCase()方法用法转换从Uni ...
- webAPI 405
web.config 配置 <system.webServer> <modules> <remove name="WebDAVModule" /> ...
- poj 3537 Crosses and Crosses 博弈论之grundy值
题意: 给1*n的格子,轮流在上面叉叉,最先画得3个连续叉叉的赢.问先手必胜还是必败. 分析: 求状态的grundy值(也就是sg值),详细怎么求详见代码.为什么这么求要自己想的,仅仅可意会(别人都说 ...