【Django】Python+Django 图文教程

【python】Django——django简介、django安装、创建项目、快速上手 Django 是一个高效、功能强大的 Web 应用程序框架,采用 Python 编写而成。它遵循了 MTV(模型-模板-视图)的软件设计模式,旨在帮助开发者快速构建可维护的 Web 应用程序。模型(Model): Django 的模型层提供了对数据库的抽象和管理。通过定义模型类,开发者可以使用简单的 Python 代码来描述数据结构和关系,并自动映射到底层数据库。这样,开发者可以通过操作模型对象来进行数据库操作,而无需直接编写 SQL 语句。视图(View) 阅读详情
AI摘要

本教程为Python初学者介绍Django Web框架的基本使用方法,包括环境搭建、项目创建、路由设置、视图处理、模板渲染、数据库操作等内容。

Django新手图文教程

 本文面向:有python基础,刚接触web框架的初学者。

  环境:windows7    python3.5.1   pycharm专业版   Django 1.10版  pip3

一、Django简介

  百度百科:开放源代码的Web应用框架,由Python语言编写......

  重点:一个大而全的框架,啥都替你考虑好了。

1. web框架介绍

  具体介绍Django之前,必须先介绍WEB框架等概念。

  web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子。

  一般web框架的架构是这样的:

  其它基于python的web框架,如tornado、flask、webpy都是在这个范围内进行增删裁剪的。例如tornado用的是自己的异步非阻塞“wsgi”,flask则只提供了最精简和基本的框架。Django则是直接使用了WSGI,并实现了大部分功能。

2. MVC/MTV介绍

  MVC百度百科:全名Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

  通俗解释:一种文件的组织和管理形式!不要被缩写吓到了,这其实就是把不同类型的文件放到不同的目录下的一种方法,然后取了个高大上的名字。当然,它带来的好处有很多,比如前后端分离,松耦合等等,就不详细说明了。       

  模型(model):定义数据库相关的内容,一般放在models.py文件中。

  视图(view):定义HTML等静态网页文件相关,也就是那些html、css、js等前端的东西。

  控制器(controller):定义业务逻辑相关,就是你的主要代码。  

  MTV: 有些WEB框架觉得MVC的字面意思很别扭,就给它改了一下。view不再是HTML相关,而是主业务逻辑了,相当于控制器。html被放在Templates中,称作模板,于是MVC就变成了MTV。这其实就是一个文字游戏,和MVC本质上是一样的,换了个名字和叫法而已,换汤不换药。

3.Django的MTV模型组织

  目录分开,就必须有机制将他们在内里进行耦合。在Django中,urls、orm、static、settings等起着重要的作用。一个典型的业务流程是如下图所示:

那么我们学Django学的是什么?

1. 目录结构规范

2. urls路由方式

3. settings配置

4. ORM操作

5. jinja2模板渲染

6.其它

二、Django项目实例

1. 程序安装

  python3.5、pip3及pycharm专业版自行安装。pycharm不要使用免费版,它不支持Django。

(1)安装Django:

  这里只介绍较为简单的pip3命令安装方式。

  win+r,调出cmd,运行命令:pip3 install django,自动安装Pypi提供的最新版本。

安装完成后如下图所示:

(2)配置系统环境

成功安装Django后,在下图中的路径可找到django-admin.exe文件,将它加入操作系统环境变量中。这样在以后的调用会比较方便。

运行:django-admin help,能看到下面的内容表示OK。

 2. 创建django项目

  在linux等命令行界面下,使用django提供的命令和vim也能进行项目开发。但是,这里推荐使用pycharm这个目前最好的python开发IDE

,它功能强大,界面友好。(下面所有的操作都在pycharm中进行。)

  点击:file-->new project,出现下面的对话框。

选择Django栏目,输入项目名称,这里采用国际惯例的mysite。选择python解释器版本,点击create创建。

Django将自动生成下面的目录结构:

与项目同名的目录中是配置文件,templates目录是html文件存放也就是MTV中的T。manage.py是django项目管理文件。

3. 创建APP

  在每个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。

所有的APP共享项目资源。

  在pycharm下方的terminal终端中输入命令:

  python manage.py startapp cmdb

  这样就创建了一个叫做cmdb的APP,django自动生成“cmdb”文件夹。

4. 编写路由

  路由都在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑。

  简单的urls编写方法如下图:

5. 编写业务处理逻辑

  业务处理逻辑都在views.py文件里。

  通过上面两个步骤,我们将index这个url指向了views里的index()函数,它接收用户请求,并返回一个“hello world”字符串。

6. 运行web服务

  现在我们已经可以将web服务运行起来了。

  命令行的方式是:python manage.py runserver 127.0.0.1:8000

  但在pycharm中,你可以这么干:

  在上部工具栏中找到下面图示的图标。

点击下拉箭头

点击edit configurations

在host中填入:127.0.0.1   port中填入:8000

OK确定之后,点击绿色的三角,web服务就运行起来了。

按图所示,自动跳转到浏览器程序界面。显示的却是下图的404页面:

修改一下url,添加“/index”,就一切ok了!

至此,一个最简单的django编写的web服务就启动成功了。

7.  返回HTML文件

  上面我们返回给用户浏览器的是什么?一个字符串!实际上这肯定不行,通常我们都是将html文件返回给用户。

  下面,我们写这么一个index.html文件:

  再修改一下views文件:

为了让django知道我们的html文件在哪里,需要修改settings文件的相应内容。但默认情况下,它正好适用,你无需修改。

接下来,我们可以重新启动web服务。在浏览器刷新一下,你会看到带有样式的“hello world”。

注:这里有个小技巧,在多次频繁重启服务时,由于端口未释放的原因,容易启动不了服务,修改一下端口就OK了。

8. 使用静态文件

  我们已经可以将html文件返还给用户了,但是还不够,前端三大块,html、css、js还有各种插件,它们齐全才是一个完整

的页面。在django中,一般将静态文件放在static目录中。接下来,在mysite中新建个static目录。

你的CSS,JS和各种插件都可以放置在这个目录里。

为了让django找到这个目录,依然需要对settings进行配置:

同样,在index.html文件中,可以引入js文件了:

重新启动web服务,刷新浏览器,查看结果。

9. 接收用户发送的数据

  上面,我们将一个要素齐全的html文件返还给了用户浏览器。但这还不够,因为web服务器和用户之间没有动态交互。

下面我们设计一个表单,让用户输入用户名和密码,提交给index这个url,服务器将接收到这些数据。

  先修改index.html文件

然后修改views.py文件

此时 ,重启web服务时,会出错,因为django有一个跨站请求保护机制,我们在settings文件中将它关闭。

再次进入浏览器,刷新页面:

输入点东西,然后我们在pycharm中可以看到相应的数据。

10. 返回动态页面

  我们收到了用户的数据,但返回给用户的依然是个静态页面,通常我们会根据用户的数据,进行处理后在返回给用户。

这时候,django采用jinja2语言编写动态模板,jinja2会根据提供的数据,替换掉html中的相应部分,详细语法入门后再深入学习。

先改造views.py文件:

再改造index.html文件:

重启服务,刷新浏览器:

可以看到,我们获得了用户实时输入的数据,并将它实时展示在了用户页面上,这是个不错的交互过程。

11. 使用数据库

  流程走到这里,django的MTV框架基本已经浮出水面了,只剩下最后的数据库部分了。

  上面我们虽然和用户交互得很好,但并没有保存任何数据,页面一旦关闭,或服务器重启,一切都将回到原始状态。

  使用数据库是毫无疑问的,django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库。下面我们来看一看:

  首先是注册app:

不注册它,你的数据库就不知道该给哪个app创建表。

然后我们在settings中,配置数据库相关的参数,如果使用自带的sqlite,不需要修改。

 再编辑models.py文件,也就是MTV中的M。

这里我们创建了2个字段,分别保存用户的名字和密码。

接下来要在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是:

python manage.py makemigrations

再输入命令:python manage.py migrate

修改views.py中的业务逻辑

重启web服务后,刷新浏览器页面,之后和用户交互的数据都能保存到数据库中。任何时候都可以从数据库中读取数据,展示到页面上。

至此,一个要素齐全,主体框架展示清晰的django项目完成了,其实很简单是不是?

三、 Django总结

  作为python必须web框架的Django,它的功能强大,内容全面,但同时也意味着限制颇多,灵活性低,可修改性差,这就是鱼和熊掌不可兼得了。我们学习Django,其实就是学习一个软件,要理解它的基本原理,把握它整体框架,牢记一些基本规则,剩下的就是不断深入细节,然后熟能生巧、经验多少的问题了,不存在多高深的不可掌握技术。 

  关于学习方法的建议:学习任何东西,不要直接扎入细节,应该先了解它的外围知识,看看它的整体架构,再学习它的基本内容,然后才是深入学习,打磨技巧!

【Python】Django 框架 在我们输入 这行看似开启一切的命令之前,我们必须先回答一个根本性的问题:Django 究竟是什么?答案很简单:它是一个用 Python 语言编写的 Web 框架。但这个答案也引出了一个更深层次的问题:Python 又是什么?对于绝大多数开发者而言,Python 是一门动态、高级、解释型的语言。我们享受其简洁的语法、丰富的库和强大的表达能力。但这些特性并非凭空而来,它们构建于一个坚实而复杂的底层基础之上。我们日常使用的标准 Python 解释器,被称为 CPython,它的核心——从内存管理到对象模型,从类 阅读详情

相关推荐

Python+Django 图文教程

在我们的应用程序中,我们将使用一个简单的模型来表示待办事项。打开在这个模型中,我们定义了一个名为TodoItem的类,它继承自。title和completed。title字段是一个CharField,用于存储待办事项的标题,最大长度为200。completed字段是一个BooleanField,用于表示待办事项是否已完成。我们还定义了__str__方法,以便在打印模型实例时返回标题。

JfpBlockchain的博客 357

Django项目完整搭建流程(简单的用户名及登录密码提交入库后展示)

原文转载自:http://www.cnblogs.com/Leo_wl/p/5824541.html 一、Django简介   百度百科:开放源代码的Web应用框架,由Python语言编写……   重点:一个大而全的框架,啥都替你考虑好了。 1. web框架介绍   具体介绍Django之前,必须先介绍WEB框架等概念。   web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子。   一般web框架的架构是这样的:   其它基于.

bensam的博客 5493

精益六西格玛Python数字化应用开发-Day18 应用场景:家电企业生产效率优化

本文将重点介绍专门针对精益六西格玛黑带使用场景的 Python 库,这些库功能侧重于数据分析和流程优化,特别适用于 DMAIC 方法论和看板管理。考虑到读者具备中高级Python 使用经验,我们将深入探讨各库的高级功能和实际应用应用场景。 某家电企业生产线自动化程度高,数据量巨大,希望通过精益管理提升生产效率。企业借助 Python 脚本,打通各类数据源(MES、ERP、设备日志),自动归集生产数据,分析各工序的生产节拍、设备停机、效率损失,快速定位瓶颈环节

m0_56592100的博客 905

python——Django 框架

根据书籍表结构设计模型类:模型类:BookInfo书籍名称字段:name根据人物表结构设计模型类:模型类:PeopleInfo人物姓名字段:name人物性别字段:gender外键约束:book外键要指定所属的模型类说明 :书籍-人物的关系为一对多. 一本书中可以有多个英雄.不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.根据数据库表的设计在models.py中定义模型类,继承自'''1.定义模型类2.模型迁移。

weixin_64672480的博客 2万+

Logisim实战:手把手教你设计硬布线版MIPS CPU(多周期/8指令/附电路图)

本文是一份详细的Logisim实战指南,手把手教你设计一个采用硬布线控制的多周期MIPS CPU。文章深入剖析了硬布线控制与微程序控制的核心理念差异,并逐步讲解了从定义执行状态、构建状态跳转逻辑到生成控制信号、集成测试的完整流程,最终实现一个支持8条指令、可运行简单程序的处理器模型。

g9h0i1的博客 592

金仓数据库KCM认证考试介绍【2025年4月更新】

金仓数据库认证资深专家KCM认证考试介绍

qq709869231的博客 3226

pythondjango教程_Python Django的安装配置教程图文详解

Django 教程Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。Django遵守BSD版权,初次发布于2005年7月, 并于2008年9月发布了第一个正式版本1.0 。Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。学习Djang...

weixin_39600837的博客 187

华南理工大学-大学物理实验-绪论作业

3.用公式测量某圆柱体铝的密度,测得直径=2.0420.003(cm),高=4.1260.004(cm),质量=36.4880.006(g)。计算铝的密度和测量的标准差,并以测量结果表达式表示之。(要求判别和剔除异常数据)(30分)(了解图解法的注意事项,大学物理实验众多实验数据处理采用这种方法,如PN结温度特性研究,光电效应与普朗克常数的测定,霍尔效应测磁场等等,注意规范作图)实验测得温度与对应的金属丝的长度的数据如下表所示。(了解异常数据的判断方法及具体判断过程,30分的题目n(*≧▽≦*)n)

mohen_777的博客 580

[Python实战]Django2.1新手图文入门教程

本文面向有一些的Python基础,但刚接触web框架的Django初学者。 环境:Windows10   Python3.6   Pycharm2018   Django 2.1版  pip3 转载自 http://www.liujiangblog.com/blog/36/ 本人项目参照: https://github.com/zld126126/python_django 一、Dja...

学生董格 3783

StarRC:版本陈旧引发的多corner提取RC失败

运行StarRC提取多corner RC时会遇到提取失败的情况,当分次提取各个corner RC时却成功了,这种时候优先考虑nxtgrd版本陈旧的情况。解决办法是找到nxtgrd对应的itf文件,然后使用新版starrc去产生nxtgrd。debug方法也简单,在运行StarRC开始阶段会报告如下信息,就证明nxtgrd太老了。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1825

华为OD机试真题 新系统【优化充电桩调度算法】

华为OD机试 新系统真题【优化充电桩调度算法】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【优化充电桩调度算法】

qq_45776114的博客 751

python3.6 django教程_Python、 Pycharm、Django安装详细教程(图文)

最近做项目要用到python,那么不用说就得先配置好python环境 以及选择好python工具。接下来分享自己的安装过程。(一)、Python的安装2.下载完成后双击.exe文件进行安装,可以自定义安装,也可以默认安装,我选择的是自定义安装,注意:我这里是选择自动生成环境变量,所以我把Add Python3.6 to Path勾选上了。3.默认安装,Next4.选择自定义安装路径5.安装完成界面...

weixin_39575758的博客 352

案例:无人船测量点位数据+ArcGIS 10.6软件生成三维水下地形的两种方法

通常情况下,采用无人船进行水下地形测量,得到的是离散的,具有点号、日期、时间、东坐标(E)、北坐标(N)、水面高程、水下高程和水深等信息的点位数据,该数据一般由航带点位数据加水岸线组成,如下图所示: 原始点位数据格式如下: 下面讲解在ArcGIS软件中生成三维水下地形的两种常用方法。 一、构建不规则三角网(Tin) 1、创建Tin 生成的Tin: 2、Tin转栅格 Tin to Raster: 三维展示: 二、空间插值 栅格插值常用的方法有:克里...

智慧空间实验室 6745

python怎么安装djanjo_pycharm中Django的安装教程(图文)

本篇文章给大家带来的内容是关于pycharm中Django的安装教程(图文),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。一.安装:1.点击File,找到setting选项2.点击+号,进入下面界面结束后,安装完成二.创建Django项目创建成功后,新项目左侧:templates:用于存储HTML文件setting.py:用于配置Djangourls.py:用于存放地址wsgi:...

weixin_39857480的博客 804

【制作100个Unity游戏之36】用unity从零开始实现类《开心消消乐》的三消类消除解压小游戏

Unity甜品消除游戏开发摘要 本文介绍了使用Unity开发甜品消除游戏的核心实现步骤: 冰块阵列生成 通过GlobalDef定义全局参数(9行7列网格) IceSpawner脚本动态生成网格化冰块阵列 添加Resolution脚本实现多分辨率适配 随机水果生成 创建FruitSpawner作为水果容器 FruitItem脚本管理水果属性(行列索引、类型) 支持动态创建水果精灵并设置位置 关键技术点 使用Instantiate动态生成预制体 通过localPosition精确控制网格布局 分辨率适配算法保持

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1288

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python开源项目怎么运行_开源Web应用框架Django图文教程

本文面向:有python基础,刚接触web框架的初学者。环境:windows7   python3.5.1  pycharm专业版  Django 1.10版  pip3一、Django简介百度百科:开放源代码的Web应用框架,由Python语言编写......重点:一个大而全的框架,啥都替你考虑好了。1. web框架介绍具体介绍Django之前,必须先介绍WEB框架等概念。web框架: 别人已经...

weixin_39533052的博客 469

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

python框架django入门_Django2.1新手图文入门教程

版权所有,转载需注明来源!本文是广受大家欢迎的《Django1.10新手图文入门教程》的2.1版本升级篇,原1.10版本传送门点击我本文面向有一些的Python基础,但刚接触web框架的Django初学者。环境:Windows10   Python3.6   Pycharm2018   Django 2.1版  pip3一、Django简介百度百科:一个开放源代码的Web框架,由Python语言...

weixin_39895995的博客 153

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python+Django实战|美食菜谱分享与食材采购一体化系统:食谱发布收藏、图文教程、食材商城、购物车、订单管理、美食点评、智能食谱推荐

本篇博客聚焦美食内容社区+轻食材电商融合赛道,和日志、天气、在线考试、图书、网盘、考勤、租赁、驾校、兼职、二手等所有往期项目完全独立。项目融合富文本编辑、图片处理、Ajax交互、简易推荐算法、电商订单流转、多角色权限等技术,打通“菜谱学习+食材采购”完整场景,业务贴近日常生活,代码规范且具备很强的落地性。该项目既可以学习Django内容类站点+轻电商的综合开发思路,也是毕业设计、求职简历中辨识度很高的融合型实战项目。

weixin_43366051的博客 332

小白教程用Xshell和Xftp部署python的Django项目到云服务器上【图文详解版】

pycharm生成依赖文件,xftp上传项目,xshell进行解压、安装虚拟环境等等操作!

Even的博客 732

Django2.1快速入门

本文转载自刘江Django2.1新手图文入门教程 本文面向有一些的Python基础,但刚接触web框架的Django初学者。 环境:Windows10 Python3.6 Pycharm2018 Django 2.1版 pip3 一、Django简介 百度百科:一个开放源代码的Web框架,由Python语言编写...... 重点:一个大而全的框架,啥都替你考虑好了。 ...

x15696576570的博客 597

图解算法使用c语言pdf_Python算法很难吗?python神书《算法图解》PDF电子版分享给你!...

许多小伙伴后台私信柠檬说,python算法让自己很头疼,有没有可以让算法像小说一样有趣的书籍资料呢?看这里吧!柠檬为大家找到了这本《算法图解》的PDF电子版!让你在学习python的路上变得轻松有趣!内 容 提 要本书示例丰富,图文并茂,以简明易懂的方式阐释了算法,旨在帮助程序员在日常项目中更好地利用算法为软件开发助力。前三章介绍算法基础,包括二分查找、大 O 表示法、两种基本的数据结构以及递归等...

weixin_39517797的博客 345

基于Python+Django的宠物养护知识分享与互动平台设计与实现(源码+lw+部署文档+讲解等)

在养宠人群激增与科学养宠需求提升的背景下,传统宠物养护信息传播存在明显短板:知识分散在论坛帖子、短视频片段中,难以系统获取“幼犬疫苗流程”“猫咪应激处理”等专业内容;缺乏专业审核机制,“偏方治宠物疾病”等错误信息误导养宠者;互动局限于零散评论,无法形成“新手提问-专家解答-经验交流”的闭环;宠物主人难以找到“同品种养护社群”,如“柯基犬髋关节护理”等细分话题讨论不足。 基于Python+Django的宠物养护知识分享与互动平台,可破解上述问题。技术设计上,采用Django框架搭建多角色互动平台(用户端、专

789

Django 学习

1、 搭建一个要素齐全,主体框架展示清晰的django项目demo,每一步操作详细,可照着做。

实践出真知 580

Django2.1新手图文入门教程

Django2.1新手图文入门教程 第一个django Web Django2.1新手图文入门教程 http://www.liujiangblog.com/blog/36/ posted @ 2018-11-01 11:07...

WBA 187

服务器2012系统如何添加用户和组,windows server 2012 本地用户和组

python Web开发框架-Django (2)接上篇文章,介绍一些实用的技巧和注意点.首次用MarkDown编辑,感觉行空隙太大,不是那么好看. GET/POST 前后端会有数据交互,使用JQuery来实现get/post请求 GET 方法1:通 ...给产品经理讲技术,不得不懂的TCP和UDPTCP/IP协议,你一定经常听说吧,其中TCP(Transmis...

weixin_36070745的博客 1004

python 输出结果图文混排_Django图文混排

图文混排表字段用TextFiledTitle作者:数量:内容:图片:提交修改 tinymce_setup.js:tinymce.init({//选择class为content的标签作为编辑器selector: '#rich_content',//方向从左到右directionality:'ltr',//语言选择中文language:'zh_CN',//高度为400height:400,width:...

weixin_29568097的博客 513
上一篇: 【JavaScript 红宝书】JavaScript 高级教程第 3 版学习笔记
下一篇: 【Python】Python3.X笔记
蟹蟹蟹风流
蟹蟹蟹风流 优质创作者: 编程框架技术领域 优质创作者: 编程框架技术领域 领域专家: 前端开发技术领域 领域专家: 前端开发技术领域
博客等级 码龄11年 3万+粉丝 396原创
评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值