Django 安装

windows安装Django,pip安装,cmd命令进入命令行,输入下面命令,pip版本需要升级,按照提示升级

  -i https://pypi.tuna.tsinghua.edu.cn/simple 指定清华镜像源,下载速度更快。

Pycharm安装

file ---> settings ----> project 解释器 ---> 点击+ ----> 输入Django ---> install(如果选择版本时,选择 CheckBox ,选择指定版本)

  

Django 创建项目

安装 Django 之后,已经有了可用的管理工具 django-admin.py,cmd命令下输入客园查看对应命令

使用 django-admin.py 来创建 HelloWorld 项目,cd到对应目录下进行执行

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/asgi.py: 一个 ASGI 兼容的 Web 服务器的入口,以便运行你的项目。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

接下来我们进入 HelloWorld 目录输入以下命令,启动服务器:

0.0.0.0 让其它电脑可连接到开发服务器,9000 为端口号。如果不说明,那么端口号默认为 8000。

在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 127.0.0.1:8000) 及端口号,如果正常启动,输出结果如下:

视图和URL配置

在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 views.py 文件,并输入代码: 

接着,绑定 URL 与视图函数。打开 urls.py 文件

完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:

Django 模板

模板是一个文本,用于分离文档的表现形式和内容

在 HelloWorld 目录底下创建 templates 目录并建立 index.html文件 

index.html 文件代码如下,模板中我们变量使用了双括号

接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR, "/templates",],如下所示:

现在修改 views.py,增加一个新的对象,用于向模板提交数据:

现在修改 urls.py,增加一个新的路由

其中,context 字典中元素的键值 hello 对应了模板中的变量 {{ hello }}。

再次访问页面

 这样我们就完成了使用模板来输出数据,从而实现数据与视图分离。

Django 模板标签

模板语法: 

编辑views.py文件

templates 中的 index.html :

再次访问服务器:http://127.0.0.1:8000/index/

列表:templates 中的 index.html中,可以用 . 索引下标取出对应的元素。

字典:templates 中的 index.html中,可以用 .键 取出对应的值。

views.py代码:

index.html代码:

访问 http://127.0.0.1:8000/index,可以看到页面:

过滤器

语法:

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符。

模板继承

模板可以用继承的方式来实现复用,减少冗余内容。

父模板,标签block...endblock父模板中的预留区域,该区域留个子模版填充差异性内容,不用预留区域名字不能相同。

子模版,使用标签extends继承父模板

创建base.html文件

继承父模板内容并自定义

测试效果

Django 模型

Django ORM,Django模型使用自带的ORM,对象关系映射(Object Relational Mapping) 

Django使用mysql数据库

创建mysql数据库:

创建一个新的项目,Django版本为2.2,遇到报错:NameError: name 'os' is not defined  解决:在settings.py中引入os模块 

在项目的settings.py文件中找到DATABASES配置项,将其信息修改为:

在与settings.py同级4目录下的__init__.py中引入模块进行配置

在项目的models.py下面创建测试表

 在命令行中运行命令

数据库操作

在项目目录下创建testdb.py文件,并修改urls.py

添加数据

在testdb.py文件中创建对象

在浏览器访问http://127.0.0.1:8000/testdb/

获取数据

修改testdb.py文件

更新数据

修改数据可以用save()或update()

在浏览器访问http://127.0.0.1:8000/testdb/

删除数据 

删除数据库中的对象只需调用该对象的delete()方法

在浏览器访问http://127.0.0.1:8000/testdb/

Django 表单

使用默认数据库

使用Database连接数据库(sqlite数据库连接)

按路径找到默认数据库

get方法

创建一个search.py文件

在templates中增加search_form.html表单

在urls.py中添加路径

在浏览器输入:http://127.0.0.1:8000/search_form/

 

post方法

search.py添加

添加post.html文件

urls.py增加路径

在浏览器输入:http://127.0.0.1:8000/search_post/

Django 视图

视图层

代码写在哪里都可以,只要在 Python 目录下面,一般放在项目的 views.py 文件中。

每个视图函数都负责返回一个 HttpResponse 对象,对象中包含生成的响应。

视图层中有两个重要的对象:请求对象(request)与响应对象(HttpResponse)。 

GET

数据类型是 QueryDict,一个类似于字典的对象。

取值格式:对象.方法。