Django系列文章目录

第一章 Django使用的基础知识
第二章 setting.py文件的配置
第三章 路由的定义与使用
第四章 视图的定义与使用
第五章 二进制文件下载响应
第六章 Http请求&HttpRequest请求类
第七章 会话管理(Cookies&Session)
第八章 文件上传实现
第九章 多种视图view
第十章 Django5模板引擎
第十一章 模型定义与使用
第十二章 ORM执行SQL语句和事务
第十三章 表单定义与使用
第十四章 内置Admin系统
第十五章 内置Auth认证系统



前言

Django介绍

Django,发音为[`dʒæŋɡəʊ],Django诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian
开发。当时两位作者的老板和记者要他们几天甚至几个小时之内增加新的功能。两人不得已开发了
Django这套框架以实现快速开发目的,因此Django生来就是为了节省开发者时间的。Django发展至今,被许许多多国内外的开发者使用,已经成为web开发者的首选框架。因此,如果你是用python来做网站或app后端,没有理由不学好Django。Django具有以下特点:

  1. 快速开发。Django是一个开箱即用的Web框架,包括了数据库处理、HTML渲染、Admin系统、发
    送邮件、登录鉴权等平时开发中你能想到的功能,他都已经集成好了,只要你学会了,以后开发的
    速度是非常快的。
  2. 安全性高。Django在安全方面做得非常完善,节省开发者处理安全的时间。比如SQL注入、CSRF攻击,点击劫持等常见的Web安全问题,Django都已经处理好了。
  3. 可伸缩性强。世界上很多大型网站都是用Django开发的,能快速和灵活的调整硬件来满足不同的流量需求

URL组成部分详解

URL 是 Uniform Resource Locator 的简写,统一资源定位符。
一个 URL 由以下几部分组成:

 scheme://host:port/path/?query-string=xxx#anchor

scheme:代表的是访问的协议,一般为 http 或者 https 以及 ftp 等。
host:主机名,域名,比如 www.baidu.com 。
port:端口号。HTTP协议是80端口,HTTPS协议是443端口。
path:查找路径。比如: www.jianshu.com/trending/now ,后面的 trending/now 就是 path 。
query-string:查询字符串,比如: www.baidu.com/s?wd=python ,后面的 wd=python 就是查询
字符串。
anchor:锚点,后台一般不用管,前端用来做页面定位的。
注意: URL 中的所有字符都是 ASCII 字符集,如果出现非 ASCII 字符,比如中文,浏览器会进行编码再进行传输。


一、创建Django项目

在这里插入图片描述

二、运行Django项目

1.点击运行
在这里插入图片描述
2.用命令行
python manage.py runserver +指定IP和端口

python manage.py runserver 0.0.0.0:8000

结果如下:
在这里插入图片描述

三、项目结构介绍

startdjango
  │  manage.py
  │
  └─startdjango
          asgi.py
          settings.py
          urls.py
          wsgi.py
          __init__.py
  1. manage.py :以后和项目交互基本上都是基于这个文件。一般都是在终端输入 python manage.py [子命令] 。可以输入 python manage.py help 看下能做什么事情。除非你知道你自己在做什么,一般情况下不应该编辑这个文件。
  2. settings.py :本项目的设置项,以后所有和项目相关的配置都是放在这个里面。
  3. urls.py :这个文件是用来配置URL路由的。比如访问 http://127.0.0.1/news/ 是访问新闻列表页,这些东西就需要在这个文件中完成。
  4. wsgi.py :项目与 WSGI 协议兼容的 web 服务器入口,部署的时候需要用到的,一般情况下也是不需要修改的。
  5. asgi.py:开启⼀个ASGI服务,ASGI是异步⽹关协议接⼝;【不用修改】

四、project和app的关系

app 是 django 项目的组成部分。一个 app 代表项目中的一个模块,所有 URL 请求的响应都是由 app 来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在 django 的角度来看,图书,电影这些模块就是 app ,图书,电影这些 app 共同组成豆瓣这个项目。因此这里要有一个概念,django 项目由许多 app 组成,一个 app 可以被用到其他项目, django 也能拥有不同的 app 。通过命令:

python manage.py startapp book

来创建app

五、Django5操作命令

在命令终端中输入如下命令可获得输入提示

python manage.py help

Django5 的操作指令共有31条,每条指令的说明以表格形式展示。

指令说明
changepassword修改内置用户表的用户密码
createsuperuser为内置用户表创建超级管理员账号
remove_stale_contenttypes删除数据库中已不使用的数据表
check检测整个项目是否存在异常问题
compilemessages编译语言文件,用于项目的区域语言设置
createcachetable创建缓存数据表,为内置的缓存机制提供存储功能
dbshell进入Django配置的数据库,可以执行数据库的SQL语句
diffsettings显示当前settings.py的配置信息与默认配置的差异
dumpdata导出数据表的数据并以JSON格式存储,如 python manage.py dumpdata index > data.json,这是index的模型所对应的数据导出,并保存在 data.json 文件中
flush清空数据表的数据信息
inspectdb获取项目所有模型的定义过程
loaddata将数据文件导入数据表,如 python manage.py loaddata data.json
makemessages创建语言文件,用于项目的区域语言设置
makemigrations从模型对象创建数据迁移文件并保存在App的migrations文件夹
migrate根据迁移文件的内容,在数据库里生成相应的数据表
sendtestemail向指定的收件人发送测试的电子邮件
shell进入Django的Shell模式,用于调试项目功能
showmigrations查看当前项目的所有迁移文件
sqlflush查看清空数据库的SQL语句脚本
sqlmigrate根据迁移文件内容输出相应的SQL语句
sqlsequencereset重置数据表递增字段的索引值
squashmigrations对迁移文件进行压缩处理
startapp创建项目应用App
optimizemigration允许优化迁移操作
startproject创建新的Django项目
test运行App里面的测试程序
testserver新建测试数据库并使用该数据库运行项目
clearsessions清除会话Session数据
collectstatic收集所有的静态文件
findstatic查找静态文件的路径信息
runserver在本地计算机上启动Django项目

六、Django5应用配置

为了更好的理解Django5的应用配置,我们先来学习下Django的MTV模型。
Django的MTV分别代表:
Model(模型):业务对象与数据库的对象(ORM)
Template(模版):负责如何把页面展示给用户
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
此外,Django还有一个urls分发器,它的作用是将一个URI的页面请求分发给不同的view处理,view再调用相应的Model和Template。 Django WEB框架示意图如下所示:
在这里插入图片描述
前面生成应用结构如下:

+---app01
|   |   admin.py
|   |   apps.py
|   |   models.py
|   |   tests.py
|   |   views.py
|   |   __init__.py
|   |
|   \---migrations
|           __init__.py

我们来解释下这些生成的python文件。

__init__.py:说明目录是一个python模块

migrations.py目录:用于存放数据库迁移历史文件

models.py: 用于应用操作数据库的模型

views.py: 用于编写Web应用视图,接收数据,处理数据,与Model(模型),Template(模版)进行交互,返回应答

apps.py:应用配置文件。

tests.py:做单元测试。

admin.py:默认提供了admin后台管理,用作网站的后台管理站点配置相关


七、编写一个简单的页面

第一步:创建Hello World应用

python manage.py startapp HelloWorld

在这里插入图片描述在这里插入图片描述

第二步:注册应用到项目的settings.py

把helloWorld应用的apps.py里的HelloworldConfig类注册到settings.py里去
在这里插入图片描述

第三步:编写模版网页代码index.html

在templates目录下,新建index.html文件
在这里插入图片描述
在这里插入图片描述

第四步:编写视图处理请求层代码

在应用的views.py里编写index方法,request是客户端请求对象,render是渲染方法,可以携带数据渲染到指定页面

def index(request):
    return render(request, 'index.html')

在这里插入图片描述

第五步:编写请求映射函数配置

在项目的urls.py里编写应用的index/请求,执行我们上面应用定义的请求处理代码,也就是写一个映射关系代码。
在这里插入图片描述

第六步,启动项目,测试

启动方法上面说过了,用runserver或点右上角
效果如下
在这里插入图片描述


总结

本文介绍了如何简单创建一个Django项目,后续还会介绍如何各个模块的作用以及具体设置,从而完成一个完整的项目。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐