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,一个类似于字典的对象。
取值格式:对象.方法。