Diango总结

     进行web开发时,需要跟踪大量的细节。除了显示HTML和处理表单输入外,还有其他的工作要做:

1:处理cookie,会话和登录

2:检测并显示错误

3:在数据库中存储数据

4:将网页设计与应用的应用的其他部分分离,让web设计人员无需打扰您就能进行网页设计。

Django遵循  模型(数据)-视图-控制器的一种将数据和表示分离的设计模式

      模型存储数据并提供操作数据的函数;视图(模板)是用户最终显示数据和用户界面;控制器(视图函数)负责界面和存储之间的所有工作。

    本文是最djanggo开发的一个入门级总结,不涉及太多具体的实现,只为给以后可能开发进行参考。


版本还是比较新的

一:创建工程目录:
进入创建的目录后执行命令 django-admin.py startproject mysite

工程目录下大概有三个文件 setting是全局设置,urls将请求与响应关联起来
二:进入工程文件夹,创建应用! L:\diango\mysite

这里多了管理员admin.py模块,少了书上说的urls.py模块。可能不同的版本有不同的设置,下文将看到因版本问题需要修改很多地方。


四:使用模板HTML

  diango模板就是html页面,它包含一些特殊的命令,循环控制语句,甚至函数等,可以动态地创建html。

在模板中将python内容放在{%和%}或者{{和}}之间,位于前者的是程序代码,位于后者的是变量。变量来自模板渲染时

传递给他的上下文。

例如创建一个简单的table表单,名字为index.tmpl,当然也可以使用通用模板就不用自己编写了,下文会讲

1:表单的部分内容如下

<body>
{%if totos%}
<table border="1">
<tr><td>Todo</td><td>Importance</td></tr>
   {%for toto in todos %}
      <tr><td>{{todo.title}}</td>
	      <td>{{todo.importance}}</td></tr>
    {%endfor%}
</table>
{%else%}
...
</body>

2:编写视图函数views.py

from django.template import Context,loader
from django.http import HttpResponse

def hello_world(request)
    todos = [{'title':'A','importance':'1'},//列表字典
	{'title':'B','importance':'2'},
	{'title':'C','importance':'3'},
	{'title':'D','importance':'4'},
	]
	t =loader.get_template('index.tmpl')
	c =Context({'todos':todos,}) //上下文
	return HttpResponse(t.render(c))

3:修改settings.py让它找到模板

TEMPLATE_DIRS那个目录下加入应用的路径就好,django会在全目录下搜索。

这里使用列表字典导入数据,下边学习从模型中导入数据

五:项目中添加应用:

五:创建模型来添加数据库服务:

1:编写modles类

class Blogpost(models.Model):
title=models.CharField(max_length=150)
body=models.TextField()
timestamp=models.DateTimeField()

   

可以使用mysql数据库,这里使用自带的SQlite


手动创建文件夹和数据库,并在name中写上。
conn=sqlite3.connect( 'L:\diango\db\mysite.db')
2连接数据库并创建数据库表单

一个错误

简言之:在Django 1.9及未来的版本种使用migrate代替syscdb.

运行这个命令,django会查找 INSTALLED_APPS中列出的所有应用的models.py,为每一个数据模型,创建一个数据库表。并且按照名字创建了一个数据库表 mysite1.db

创建表的工作是django幕后为我们做的

可以用  python manage.py sql blog 命令来查看创建表单时候的esql语句。

六:使用模型

from django.template import Context,loader
from django.http import HttpResponse
from blog.modles import Blogpost

def hello_world(request)
    todos = Blogpost.object.all().order_by
	( 'title')
	t =loader.get_template('index.tmpl')
	c =Context({'todos':todos,}) //上下文
	return HttpResponse(t.render(c))
暂时先写到这里




猜你喜欢

转载自blog.csdn.net/runner668/article/details/80718654