Django高级实战 开发企业级问答网站 Django基本原理

跳槽及毕设Django高级实战 开发企业级问答网站 

视频地址: https://study.163.com/course/introduction/1209407824.htm?share=2&shareId=400000000535031

首先: 
Django是Python的web开发框架,遵循MVC设计模式,但是在Django中通常称为MTV,即models-template-views。

1)views和URL 
views是业务逻辑层,在Django里面views通常是一个的views.py模块,放在对应的包里。views.py里面是具体的逻辑函数,每一个函数对应着一个或多个模版,为了建立模版与视图的联系,还要有一定的路由机制,于是Django通常在根目录有一个路由程序urls.py。路由由patterns来创建,用正则表达式来描述,极大地提高了路由机制的灵活性。 
例如:

#views.py
def home(request):
    values = request.META.items()
    values.sort()
    return render_to_response('home.html',{"values":values})

#urls.py
from django.conf.urls.defaults import *
    urlpatterns = patterns('',('^$',home),)
1
2
3
4
5
6
7
8
9
10
在这里request参数是必须的,但是你可以任意命名,只要符合规范即可,request包含页面的请求信息。render_to_response在django.shortcuts里,所以你还要在前面声明form django.shortcuts import render_to_response。request.MATE里含有所有的请求界面信息和用户信息。sort()是对list从小到大排序。返回值的意思就是向home.html模版提交一个values变量。urls中patterns中的元组添加了正则的导向规则:除去原地址匹配’^$’者导向home。当然这前提是views.py文件与urls.py在同一个文件夹里面否则就要引用home的命名空间。

2)模板(template)

模版在Django中是显示数据的地方,通常为HTML格式,在模版中Django的处理逻辑要写在{% %}中,而要显示的变量要写在{{ }}中。Django的母板页可以用任何文档充当,前提是要用{% block name %}{% endblock %}声明要填充或替换的块,而使用时只需{% extends 母版名字 %}然后调用相应的块就可以了。

3)models

在setting.py 中的database的字典中配置数据库。配置完成后 使用manage.py startapp来创建app在models中编写python代码描述实体映射。比如:

#models.py
class Publisher(models.Model):
    name = models.CharField(max_length = 30)
    website = models.URLField()

def __unicode__(self):
    return self.name

class Meta:
    ordering = ['name']
1
2
3
4
5
6
7
8
9
10
11
models包含在django.db中,里面封装了模型类的通用接口。CharField()是创建varchar型数据,参数有max_length,blank,verbose_name等。分别表示最大长度、是否为空、显示名称。def__unicode__提供了装箱后的默认显示,如果没有设置此函数,默认显示object类型。class Meta规定了模型的默认排序字段。

总体来看,整个机制如下图所示:
--------------------- 
作者:godqiao 
来源:CSDN 
原文:https://blog.csdn.net/godqiao/article/details/78664497 
版权声明:本文为博主原创文章,转载请附上博文链接!

è¿éåå¾çæè¿°

猜你喜欢

转载自blog.csdn.net/weixin_42155685/article/details/94721476