MTV模式      

        著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层;他们之间以一种插件似的,松耦合的方式连接在一起。

        模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求。

        【Python之路】第二十二篇--Django【基础篇】

       Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同,Django的MTV分别代表:

       Model(模型):负责业务对象与数据库的对象(ORM)

       Template(模版):负责如何把页面展示给用户

       View(视图):负责业务逻辑,并在适当的时候调用Model和Template

       此外,Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template

【Python之路】第二十二篇--Django【基础篇】

2 开始Django

1、创建Django项目

django-admin startproject mysite

当前目录下会生成一个 mysite的工程,目录结构如下:

 【Python之路】第二十二篇--Django【基础篇】

  • manage.py ----- Django项目里面的工具,通过它可以调用django shell和数据库等。

  • settings.py ---- 包含了项目的默认设置,包括数据库信息,调试标志以及其他一些工作的变量。

  • urls.py ----- 负责把URL模式映射到应用程序。

2、在mysite目录下创建app应用

python manage.py startapp blog

【Python之路】第二十二篇--Django【基础篇】

3、启动django项目

python manage.py runserver 8899   # ip:端口,默认本地ip

当我们访问:http://127.0.0.1:8899/ 时就可以看到:

【Python之路】第二十二篇--Django【基础篇】

3 Setting文件配置

方法一:

  静态文件在单独的app下:如 /app01/static/app01/JS/jquery-2.1.4.min.js  (其中蓝色app01目录为必须,但可改其他名字,static文件夹也可改其他名字)

# index.html
{% load static %} <script src="{% static 'app01/JS/jquery-2.1.4.min.js' %}"></script>

  setting文件设置: (其中app01为项目名字,static为保存静态文件的文件夹。)

STATIC_URL = '/whattttt/'   # 前端使用前缀

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'app01','static'),
)

方法二: (同上述setting配置)

# index.html
<script src="/whattttt/app01/JS/jquery-2.1.4.min.js"></script>

方法三:  使用别名的形式

# index.html
{% load static %} <script src="{% static 'biemin/JS/jquery-2.1.4.min.js' %}"></script> <script src="/whattttt/biemin/JS/jquery-2.1.4.min.js"></script>

  setting文件设置: 

STATIC_URL = '/whattttt/'

STATICFILES_DIRS = (
    ('biemin',os.path.join(BASE_DIR,'app01','static','app01')),
)

补充:

  如果不想每次在模版中加载静态文件都使用 {% load static%}

  可以在settings.py中的 TEMPLATES/OPTIONS添加'builtins':['django.templatetags.static']

TEMPLATES = [
  {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
    ,
    'APP_DIRS': True,
    'OPTIONS': {
      'context_processors': [
        'django.template.context_processors.debug',
        'django.template.context_processors.request',
        'django.contrib.auth.context_processors.auth',
        'django.contrib.messages.context_processors.messages',
      ],
      #添加在这个位置
      'builtins' : [
        'django.templatetags.static'
      ],
    },
  },
]

  

4 Django URL路由系统

  它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表

urlpatterns = [
    url(正则表达式, view函数,参数,别名),
]

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/', views.index , {"a":'123'} , 'FFF'),
]

参数说明:

  • 一个正则表达式字符串

  • 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串

  • 可选的要传递给视图函数的默认参数(字典形式)

  • 一个可选的name参数 (别名)

from django.conf.urls import url
from app01 import views

urlpatterns = [
    url(r'^index/', views.index),
    url(r'^articles/([0-9]{4})/$', views.year_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
    url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]
demo

相关文章: