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

django开发步骤

2012-02-17 13:26 169 查看
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页面) 即可

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: