-->
什么是模型模型是一个Python类,即class,它由django.db.models.Model所派生出来的子类一个模型类即代表了数据库中的一张数据表模型类的每一个类属性都代表数据表中的一个字段模型是数据交互的接口,是表示和操作数据库的方法和方式ORM框架定义ORM(Object Relational Mapping)即对象关系映射,它是一种程序技术,允许使用类和对象对数据库进行操作,从而避免通过SQL语句操作数据库。作用建立模型类与表之间的对应关系,允许我们通过面向对象的方式来操作数据库;根据设计的模型类生成数据库中的表格;通过简单的配置即可实现数据库的切换。优势只需要面向对象编程,不需要面向数据库编写代码对数据库的操作都转化成了对类属性和方法的操作;不用编写各种数据库的SQL语句。实现数据模型和数据库间的解耦,屏蔽了不同数据库操作上的差异不用关注如MySQL, Oracle等数据库的内部细节差异;通过简单的配置即可轻松更换数据库(修改引擎),不需要修改代码。劣势对于复杂业务的使用成本较高;本质是根据对象的操作转换成SQL语句,再根据查询的结果转换成对象,在映射过程中会有性能损失。
什么是应用应用在Django项目中是一个对立的业务模块,可以包含自己的路由、视图、模板、模型。例如某资讯类网站可以包含金融、体育、娱乐、时尚等多个板块的内容。创建方法用manage.py中的子命令startapp创建应用文件夹在settings.py的INSTALLED_APP列表中配置此应用分布式路由Django中,主路由配置文件urls.py可以不处理用户具体路由,主路由配置文件可以做请求的分发(分布式请求处理),具体的请求可以由各自的应用来进行处理。配置分布式路由在主路由中调用函数include('app名字.url模块名') 从而将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理在应用下配置urls.py 在应用下手动创建urls.py文件,其内容结构与主路由完全相同应用下的模板在应用的内部,也可以配置模板目录,其步骤如下:在应用文件夹下手动创建templates文件夹在settings.py中开启应用模板功能,即将TEMPLATES配置项中的APP_DIRS配置为True即可当应用下和外部templates都存在时,django查找模板规则如下:优先查
静态文件配置在settings.py中配置静态文件的有关信息配置静态文件的访问路径STATIC_URL告诉服务器根据哪个url找到静态文件默认配置为STATIC_URL='/static/',该配置默认存在指定访问静态文件时需要通过路径/static/xxx/来访问配置静态文件的存储路径STATICFILES_DIRSSTATICFILES_DIRS是静态文件在服务器端的存储位置当访问静态文件的url被输入时,服务端到该路径下找对应的文件来展示静态文件访问在模板中访问静态文件通过{% static %}标签来访问静态文件,,以img为例,步骤如下:加载static:{% load static %}使用static资源:{% static '静态资源路径' %}样例:<img src="{% static 'images/111.png' %}>
代码中URL出现的位置Templates模板中(HTML中) <a href='url'>链接</a>点击后页面跳转至url <form action='url' method='post'>将form表单中的数据用post方法提交至url视图函数中的302跳转,即HttpResponseRedirect('url'),将用户地址栏中的地址跳转到url(重定向)URL的书写规范绝对地址:http://127.0.0.1:8000/page/1相对地址:第一种:'/page/1'以'/'开头的相对地址,浏览器会自动将当前地址栏中的协议、ip、端口加上这个地址,作为最终的访问地址。例如:当前页面地址栏为http://127.0.0.1:8000/page/3,则当前相对地址的最终结果会变为http://127.0.0.1:8000/page/1第二种:'page/1没有'/'开头的相对地址,浏览器会根据当前的url的最后一个/之前的内容加上该相对地址作为最终访问地址。例如:当前页面地址栏为http://127.0.0.1:8000/topic/detai
MVC模式MVC代表Model-View-Controller(模型-视图-控制器)模式。M-Model模型层,主要用于对数据库层的封装V-View视图层,用于向用户展示结果(What+How)C-Controller控制层,用于处理请求、获得数据、返回结果Django的MTV模式MTV代表Model-Template-View(模型-模板-视图)模式。M-Model模型层,负责与数据库交互T-Template模板层,负责呈现内容到浏览器(How)V-View视图层,负责接收请求、获取数据、返回结果(What)什么是模板模板是可以根据字典数据动态变化的Html网页模板可以根据视图中传递的字典数据动态生成对应的HTML页面Django中如何使用模板-初始化配置创建模板文件夹<项目名>/templates在settings.py中修改TEMPLATES配置项 a. BACKEND:指定模板引擎 b. DIR8:模板的搜索目录(可以是一个或者多个) c. APP_DIRS:是否要再应用中的templates文件夹中搜索模板文件 d. OPTIONS:有关模板的选项在配置项中设置D
Bangyao Wang
不啻微芒,造炬成阳