Django的由来

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。 Django的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。在Django中Python被普遍使用,甚至包括配置文件和数据模型。
-----维基百科

Django的MTV开发模式:

Django是一个基于MVC构造的框架;但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:
(1) 模型(Model),即数据存取层 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
(2) 视图(View),即表现层 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
(3) 模板(Template),即业务逻辑层 存取模型及调取恰当模板的相关逻辑。

Django代码结构

  • urls.py 网址入口,关联到对应的views.py中的一个函数(或者generic类),访问网址就对应一个函数。
  • views.py 处理用户发出的请求,从urls.py中对应过来, 通过渲染templates中的网页可以将显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。
  • models.py 与数据库操作相关,存入或读取数据时用到这个,当然用不到数据库的时候 你可以不使用。
  • forms.py 表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,当然你也可以不使用。
  • templates 文件夹 views.py 中的函数渲染templates中的Html模板,得到动态内容的网页,当然可以用缓存来提高速度。
  • admin.py 后台,可以用很少量的代码就拥有一个强大的后台。
  • settings.py Django 的设置,配置文件,比如 DEBUG 的开关,静态文件的位置等。
    Django 框架工作流程如下图:


结合Bootstrap和页面模板前端设计

Bootstrap自我介绍

Bootstrap是一组用于网站和网络应用程序开发的开源前端框架,包括HTML、CSS及JavaScript的框架,提供字体排印、窗体、按钮、导航及其他各种组件及Javascript扩展,旨在使动态网页和Web应用的开发更加容易。 Bootstrap是GitHub上面被标记为“Starred”次数排名第二最多的项目。Starred次数超过105,000,而分支次数超过了47,000次。
注:前端框架,所有的插件依赖于 jQuery;所以必须在插件文件之前引用 jQuery

引入 Bootstrap

<!-- 引入 Bootstrap -->
<link href="http://apps.bdimg.com/libs/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet">
<!-- jQuery (Bootstrap 的 JavaScript 插件需要引入 jQuery) -->
<script src="https://code.jquery.com/jquery.js"></script>

或者:

<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script src="//libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
<script src="//libs.baidu.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>

使用多个数据库

(1)打开xmjc_analysis/setting.py,有一个默认的数据库 default,我们可以再加一些其它的(这里你可以调用Access、SQLServer、Oracle等),比如:

DATABASES = {
'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'test','USER': 'test','PASSWORD': 'test123','HOST':'localhost','PORT':'3306',
},
'db1': {'ENGINE': 'django.db.backends.mysql','NAME': '数据库名称','USER': '用户名','PASSWORD': '密码',"HOST": "localhost", #本地'PORT':'3306',
},
'db2': {'ENGINE': 'django.db.backends.mysql','NAME': '数据库名称','USER': '用户名','PASSWORD': '密码',"HOST": "服务器地址",'PORT':'3306',
},
}
# use multi-database in django
DATABASE_ROUTERS = ['xmjc_analysis.database_router.DatabaseAppsRouter']
DATABASE_APPS_MAPPING = {
#'app_name':'database_name',
'app1': 'db1',
'app2': 'db2',
}```
(2)在project_name文件夹中存放 database_router.py 文件,内容如下:

-- coding: utf-8 --

from django.conf import settings

概念化学习Django相关推荐

  1. 在学习django的时候

    在学习Django的时候,感觉之前学习的Python基础不牢,有些语法不能理解 转载于:https://www.cnblogs.com/monkeyjz2018/p/8438014.html

  2. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

  3. django构建网页_通过解决问题的方式学习django,律师如何构建副业

    django构建网页 This post was originally published on Codementor's blog 该帖子最初发布在 Codementor的博客上 "I'm ...

  4. 学习django就看这本书了!django book 2.0中文版

    所属网站分类: 资源下载 > python电子书 作者:熊猫烧香 链接:http://www.pythonheidong.com/blog/article/29/ 来源:python黑洞网 dj ...

  5. python进阶学习--- django框架解析 ---领悟编程语言共性与特性【后续详解】

    python进阶学习---> django框架解析 --->领悟编程语言共性与特性 1.python语言介绍   python解释型脚本语言 2.python执行原理   python解释 ...

  6. Django大咖之路: 如何对付学习Django过程中所遇到的挫败感?

    Django作为一个成熟的网站和网络应用开发框架,有着大而全的模块和功能.对于刚从事网站开发或刚熟悉Python语言的新手而言,觉得学习Django好难是一件非常普遍的事情.小编我就以亲身经历告诉你如 ...

  7. 如何深入学习Django?

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 醉卧沙场君莫笑,古来征战几人回? ...

  8. 在学习django时,出现__init__() missing 1 required positional argument: ‘on_delete‘错误

    bug处理 学习django时,创建两张表,并设置其中一张表的某一属性为外键,在进行构建迁移文件时,出现__init__() missing 1 required positional argumen ...

  9. Django项目开发——001如何学习django

    参考地址: https://code.ziqiangxuetang.com/django/django-tutorial.html https://www.django.cn/article/show ...

最新文章

  1. 简述C语言的标准发展,简述C语言的发展历史
  2. python操作mysql事务提交_python连接mysql并提交mysql事务示例
  3. oracle group by效率问题,性能优化-group by的优化
  4. 阿里云RPA专有云产品文档集合
  5. 小程序服务器api接口,百度智能小程序API 开放接口
  6. 较真的来了!这篇【硬核论文】为何恺明新作MAE提供了一种理论解释和数学证明...
  7. pythonqueue线程_python之线程queue
  8. 品味.NET经典[转载]
  9. 关于西门子plc的CPU
  10. android控制电脑,安卓手机远程控制电脑教程详解
  11. 微信小程序:音乐播放器(附源码)
  12. 重拾C语言-摄氏度与华氏度相互转换
  13. OCP-1Z0-051 补充题库 第35题 LONG类型
  14. java中expand用法_Rxjs expand的用法分析
  15. LeetCode刷题笔记 二叉树 二叉搜索树的操作
  16. 忽然看到自己十年前发的关于转计算机专业的帖子
  17. 沧海一粟第五次团队博客
  18. 【Java】恭喜你,你的代码获奖了(编写代码的151的建议)
  19. Linux: strace总结
  20. 51单片机入门-开发板介绍及软件安装

热门文章

  1. android 5.0主题风格研究
  2. 轻松管理Win 2003的“远程桌面”
  3. 解析三层架构(1)---为什么要分层?
  4. 区块链是一种用一种不可变的形式存储数字信息
  5. 如何做一个听话的 “输入框”
  6. Swift中 !和 ?的区别及使用与Swift的Guard语句
  7. python3精简笔记——开篇
  8. placeholder的样式设置
  9. SAS EG第一课练习1
  10. Android SDK 国内镜像及配置方法