`
java-mans
  • 浏览: 11456766 次
文章分类
社区版块
存档分类
最新评论

django开发步骤

 
阅读更多

django 开发步骤
1.django-admin startproject pro
2.manager startapp app
*3.修改models.py,定义数据库表结构 //定义数据库结构类,也即之后views.py中使用的数据库操作类
*4.修改views.py,定义url请求处理函数和使用哪个模版输出 //一个url请求对应一个处理函数
*5.
创建模版目录和模版文件,修改settings.py注册app和指定模版目录
6.最终修改urls.py,来定义url和views.py中的处理函数对应。

工作量在于

3、数据库定义

4、视图函数定义(url请求处理函数)

5、设计模版文件html,合适的显示布局

==============详细说明===============

#将django-admin.py文件所在目录放到path
#创建一个工程,工程下还可以创建很多app(application)后面涉及模型时需要通过./manage.py startapp app1讨论。
#静态网页只要执行下面第1步即可


创建工程方法:
步骤1. django-admin.py startproject project1 #假如提醒执行不了django-admin.py,修复下python安装程序即可
__init__.py
manage.py
settings.py #设置数据库连接、模版文件路径等配置信息
urls.py #其实是mvc中的控制器功能,用于url和视图函数的映射,一个url地址对应一个视图函数(即不同的html页面)
#touch views.py创建视图文件,里面存放生成并反馈给浏览器html页面的视图函数,即view的功能(在这里处理静态模版)

步骤2. python ./manage.py startapp app1
#ls app1
__init__.py
views.py
models.py #mvc的模型层,数据库操作对象
tests.py

====================
开始修改views.py
返回一个完整的http请求的数据(HttpResponse)流程,这里四种方式
步骤1. 增加视图函数(一个视图函数输出一个html页面,可以根据模板参数动态生成不同内容的页面)
+++视图函数中处理静态模板文件html的方法如下:
方法1:
直接构造
t = Template("<html><body>内容 {{current_date}}. </body></html>")


方法2:
fp = open("datetime.html")
t = Template(fp.read())方式构造


方法3:(这种方法比上面两种方法更简洁)
t = get_template("datetime.html") #datetime.html所在目录可以在settings.py中设定

+++处理模板中的{{模版变量}}
获取了html内容后,调用模版对象的render(Context({模板变量:值}))方法来渲染静态的html,返回处理后的html

+++返回http响应数据,即:render(Context({模板变量:值}))处理后的html页面。
return HttpResponse(html)
-------------------
方法4: 除去上面3种返回HttpResponse(html)的方式,django.shortcuts下的render_to_response("模版文件.html",Context({字典}))
替代了上面3种手工加载模版到返回HttpResponse(html)的方式。
return render_to_response()
====================

理解了上述对最简单模版的加载处理,接下来讲模版文件的内容
一个模版文件.html可以include加载另一个模版文件,使用命令{% include "base.html" %} 单、双引号都可以。
include之后会导致一个重复内容的问题,那么django提出了一个“模板继承”的概念,对于web设计很重要。

模板继承:
减少公共页面区域,如:站点导航所引起的重复和冗余代码
方法:
1,使用server端的include传统做法
2,继承模版{先构建一个通用的基础框架模板,然后在子模板中对公共的{{模板标签}}进行值的修改(重载)。
需要重载的模版标签前加%block 和{% endblock% }来修饰模板
2.1 base.html内容:{%block title%}{%endblock%}
2.2 子模板中通过{% extends "base.html" %}来继承模板,再通过{%block title %}赋值内容{% endblock %}来对title标签赋值。


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
熟悉了MTV的模型,开发时关注在 模型设计(数据库表结构类)、视图函数(用来处理url请求和使用哪个模版)、模版的设计(显示模版变量的html页面) 即可

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics