http://www.cnblogs.com/baiboy/p/django1.html

摘要:Django的学习教程也是分门别类,形式不一。或是较为体系的官方文档,或者风格自由的博客文档,或者偏向实例的解析文档。即使官方文档,章节较多,文字阐述累赘,有时候我们只是关注某个功能用法而已,而自由博文最大的问题是互相抄袭,结构混乱,涵盖面小且错误较为明显。由此,本文结合学习期间资料梳理和项目开发经验,整理出一套较为常用实用的文章。

适用于

  1. 新手入门,无论C#,C,java,Python,R等具有任何编程语言基础均可;

  2. 想快速了解Django并可以快速开发上手者。

  3. 适用于作为资料查询,技术点参考。

几个基本概念

前置条件:假设读者基本Python语言基础,或者具备某种编程语言的基础。你还熟悉web开发环境,懂些css,js,db等。

Django是什么?

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

————维基百科

Django是一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。并于2005年7月在BSD许可证下发布。这套框架是以比利时的吉普赛爵士吉他手Django Reinhardt来命名的。

————百度百科

MTV开发模式?

Django是一个基于MVC构造的框架。但是在Django中,控制器接受用户输入的部分由框架自行处理,所以 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),称为 MTV模式。它们各自的职责如下:

  1. 模型(Model),即数据存取层 处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。

  2. 视图(View),即表现层 处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。

  3. 模板(Template),即业务逻辑层 存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

Django的架构?

让我们一览 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 的开关,静态文件的位置等。

上面的py文件不理解也没有关系,后面会详细介绍。一图胜千言,架构全貌工作机制如下所示:

Django大家都在使用的商业网站

Sohu 邮箱 、果壳网 、 豆瓣 、 爱调研 、 易度在线云办公 、 优容网 、 快玩游戏、九九房、贷帮网 、 趣奇网 、知乎、时尚时空 、游嘻板: YxPad webpy、DNSPod 国际版 、下厨房 、 贝太厨房 、 Wopus问答 、 咕咚网 、扇贝网 、站长工具、易度文档管理系统、个人租房、 在线文档查看-易度云查看 、 FIFA310 足球数据分析专家、 搜狐随身看等等。

Django配置准备

前置条件:pip、python、sublime、anaconda环境已经安装。

后置条件:

检查是否安装成功:

xxx数据统计分析(决策)平台

系统环境:WIN10 64bit

开发环境:sublime+Anaconda

数据库:Mysql 5.6.17

语言:python3.5

框架:django1.11+Bootstrap

可视化工具:Highchart|Echarts|plotly|Bokeh(采用Echarts)

Django基础配置安装

1 创建项目,项目决策分析:xmjc_analysis

在E盘根目录下创建xmjc_analysis:

效果:

settings.py 项目的设置文件

urls.py 总的urls配置文件

wsgi.py 部署服务器文件

__init__.py python包的目录结构必须的,与调用有关。

2 创建App名为analysis

效果:

3 新定义的app加到settings.py中的INSTALL_APPS中

4 视图和网址创建第一个页面

(1)我们在analysis这个目录中,把views.py打开,修改其中的源代码:

第一行是声明编码为utf-8, 因为我们在代码中用到了中文,如果不声明就报错.

第二行引入HttpResponse,它是用来向网页返回内容的,就像Python中的 print 一样,只不过 HttpResponse 是把内容显示到网页上。

我们定义了一个index()函数,第一个参数必须是 request,与网页发来的请求有关,request 变量里面包含get或post的内容。

(2)我们打开 xmjc_analysis/xmjc_analysis/urls.py 这个文件, 修改其中的代码:

(3)本地运行服务器测试

注意在项目根目录xmjc_analysis运行结果如下:

(4)页面传参数,显示欢迎‘admin’字样

修改view.py源码:

通过get方式接受页面参数,当然也可以采用post,结合form实现。

5 配置简单数据库操作,默认sqlite,咱们指定mysql数据库

(1)在xmjc_analysis/settings.py文件下修改如下:

xmjc_analysis/__init__.py下修改:

(2)在analysis/models.py下设计数据库表,采用ORM方式

(3) 在analysis/admin.py中定义显示数据

(4)创建更改的文件,将生成的py文件应用到数据库

(5)创建超级管理员:用户名,test;密码密码:test123456

(6)登录后台查看信息

运行服务器:python manage.py runserver

可以看到后台信息,并对数据表进行增删改查操作,但是后台全部英文,可以改为中文显示?

后台管理设置为中文显示,xmjc_analysis/settings.py下修改代码

再去查看:

(7) Django 提供的 QuerySet API,shell玩转MySql

在xmjc_analysis下输入【 python manage.py shell】,然后查询数据表。

创建一条用户信息:

后台查看:

其他操作方式:

(8)批量向数据表导入数据

将name.txt导入数据库:

数据导入源码:

查看结果:

>> 至此,基本熟悉上手了。深入学习待续...

— End —

转载于:https://www.cnblogs.com/Ryan-Yuan/p/11545005.html

秒懂系列 | 史上最简单的Python Django入门教程相关推荐

  1. python入门教程慕课网_秒懂系列 | 史上最简单的Python Django入门教程

    摘要:Django的学习教程也是分门别类,形式不一.或是较为体系的官方文档,或者风格自由的博客文档,或者偏向实例的解析文档.即使官方文档,章节较多,文字阐述累赘,有时候我们只是关注某个功能用法而已,而 ...

  2. 史上最全面的python学生管理系统教程(二)

    目录 序言 sqlite使用教程 python sqlite使用教程 数据库构造 学生信息表结构: 教师信息表结构: 课程成绩表结构: 教师添加课程: 学生表连接课程成绩表: 数据库语句了解 sqli ...

  3. 史上最简单的wordpress迁移搬家教程

    当我们的wordpress网站需要换服务器或者域名时,又或者我们在本地使用做好了wordpress网站需要上线时,都需要用到wordpress迁移搬家技术.我网上也搜了很多,什么又要改数据什么的比较麻 ...

  4. python学生管理系统用列表_史上最全面的python学生管理系统教程(二)

    序言 这篇我们来讲该软件的数据保存方式,由于想到要简便快捷,所以我采用了sqlite3数据库,该数据库操作简单方便,而且易于管理,并且SQLite是一个进程内的库,实现了自给自足的.无服务器的.零配置 ...

  5. 史上最简单的mybatis-plus快速入门

    mybatis-plus快速入门 介绍: Mybatis-Plus(简称MP)是一个Mybatis的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发,提高效率而生. 数据库表: -- 创 ...

  6. 项目实战|史上最简单的springboot 整合elk教程,实现日志收集(带视频哦)

    配套视频教程已经上传 整合ELK-实现日志收集(知乎) 整合ELK-实现日志收集(CSDN) 项目源码已上传至 https://gitee.com/yangleliu/learning.git,免费索 ...

  7. 史上最简单的微博AccessToken申请教程 ; - )

    打开链接:http://open.weibo.com/ 点击"网站接入", 点击"立即接入", 填写微博账号密码进行登录, 填写开发者信息,个人或公司任选其一, ...

  8. springboot 创建地址_这可能是史上最易懂的 Spring Boot 入门教程

    目录 一.Spring Boot 是什么 二.为什么要使用 Spring Boot 三.快速入门 3.1 创建 Spring Boot 项目 3.2 项目结构 3.3 引入 Web 依赖 3.4 编写 ...

  9. 做玫瑰花的方法 用纸_史上最简单的纸玫瑰花的折法教程教你用纸编法做玫瑰花...

    史上最简单的纸玫瑰花的折法教程教你用纸编法做玫瑰花 玫瑰花的折法制作教程一直以来都是不少同学比较喜欢的手工制作教程类型,无论是折纸玫瑰花的制作还是其他手工类型纸玫瑰花的制作,总是能够满足大家响应的制作 ...

最新文章

  1. Selenium查询10010账户余额——python篇
  2. python处理大量excel数据-python往excel写入大量数据
  3. 笔记 - Ali Cloud 块存储简介
  4. 在看世界杯的闲暇看看电视剧《长恨歌》
  5. html如何添加子页面,html5 父页面调用子页面js方法
  6. Python——腾讯笔试编程题(函数练习)
  7. php报错处理,关于升级php7后的报错处理
  8. oracle 分页_Mybatis:PageHelper分页插件源码及原理剖析
  9. PHP批量插入多条数据到Mysql报错:Mysql Prepared statement contains too many placeholders
  10. [嵌入式]A/D转换器
  11. C语言丨筛法求素数(质数)
  12. VINS-MONO边缘化策略
  13. python3卸载_python3卸载
  14. R语言用igraph绘制网络图可视化
  15. 什么是5G?它能为我们带来什么样的便利?思维导图《5G时代》给你新认识
  16. 夜雨数竞笔记-不定积分(1)-换元法-倒代换
  17. 新零售运营独白,如何联合线上线下
  18. linux协议栈 IPv4之发送过程中的分段处理ip_fragment()
  19. Android自定义控件开发入门与实战(1)绘图基础
  20. 机器学习----(Machine Learning)深度学习(Deep Learning)资料(Chapter 1)

热门文章

  1. 你想要的江湖,可能不在这时候笑傲
  2. vim 插件cscope 使用
  3. Linux下Samba服务器搭建
  4. php 反射 视频教程,php 实现反射
  5. python中continue格式_python自学(3)--for 、 while、 break、continue、字符格式化输出...
  6. 传统Web应用案例(采用服务端渲染)
  7. 天池 在线编程 求和查找
  8. 02.改善深层神经网络:超参数调试、正则化以及优化 W2.优化算法
  9. 01.神经网络和深度学习 W2.神经网络基础
  10. LeetCode 548. 将数组分割成和相等的子数组(哈希set)