Django介绍
- Django是一个基于Python的高级Web开发框架
- 它能够让开发人员进行高效且快速的开发
- 高度集成,方便开发
正常上网流程
打开浏览器->向目标URL发送一个HTTP请求->服务器把页面响应给浏览器
浏览网页的基本原理
本质是网络通信,即通过网络进行数据传递
浏览器经过通信后获取到该页面的源代码文档
浏览器解析文档后以适当的形式展示给用户
编辑器推荐
- Pycharm
- Sublime Text,Atom
Django项目开发
创建项目
- 打开命令行,进入想要安置项目的目录
- 命令行输入
django-admin startproject YourProjectName
项目目录结构
查看可用命令(在manage.py当前目录下执行)
python manage.py
目录(这里为myblog目录)
- 项目的一个容器
- 包含项目最基本的一些配置
- 目录名称不建议修改
项目目录介绍
wsgi.py
- WSGI(Web Server Gateway Interface)
- Python服务器网关接口
urls.py
-url配置文件
settings.py - 项目总配置文件
- 包含数据库、Web应用、时间等各自配置
**_init__.py** - Python中声明模块的文件
- 内容默认为空
创建应用
- 打开命令行,进入项目中manage.py同级目录
- 命令行输入
python manage.py startapp YourAppName
- 添加应用名到setting.py中的INSTALLED_APPS里
注意:应用名不能与已有名称重复,否则会报错
migrations
- 数据移植(迁移)模块
- 内容自动生成不需要管它
admin.py
- 该应用的后台管理系统配置
apps.py
- 应用的配置文件
models.py
- 数据模块
- 使用ORM框架
tests.py
- 测试脚本
views.py
- 执行响应代码所在模块
- 代码逻辑处理的主要地点
- 主要写代码的地方
创建页面
编辑blog.views
- 每个响应对应一个参数,函数必须返回一个响应
- 函数必须存在一个参数,一般约定为request
- 每个响应(函数)对应一个URL
配置URL
编辑urls.py
- 每个URL都以url形式写出
- url函数放在urlpatterns列表中
- url函数的参数根据提示写,一般常用为三个:URL、对应方法、名称
包含其他URL - 在根urls.py中引入include
- 在app目录下创建urls.py文件,根式与根urls.py相同
- 根urls.py中url函数第二个参数改为include(YourAppName.urls')
配置Templates
Templates介绍
- 一种HTML文件
- 使用了Django模板语言(DTL)
- 可以使用第三方模板(修改setting.py中TEMPLATE选项的BACKEND)
配置过程
- 在APP目录下创建Templates目录
- 在该目录下创建HTML文件
- 在views.py中返回render()
DTL的使用
- render()函数中支持一个dict类型参数
- 该字典是后台传递到模板的参数,键为参数名
- 在模板中使用{{参数名}}来直接使用
注意:
Django是按照INSTALLED_APPS中添加顺序查找Templates
因此不同APP下Templates目录中的同名html文件会造成冲突。
所以需要在APP的Templates目录下创建以APP名为名称的目录
将html文件放入新创建的目录下面
Models
Models介绍
- 一个Model对应数据库的一张数据表
- Django中Models以类的形式表现,包含一些基本字段和数据的一些行为
ORM(对象关系映射)
- 实现了对象和数据库之间的映射
- 隐藏了数据访问的细节,不需要编写SQL语句
步骤
- 在应用根目录下创建models.py,并引入models模块
- 创建类,继承models.Model,即类是一张数据表
- 在类中创建字段
字段创建
- 字段即类里面的属性(变量)
attr = models.CharField(max_length=64)
生成数据表
- 在命令行中执行命令
python manage.py makemigrations YourAppName(可选)
- 再次执行
python manage.py migrate
查看移植内容
- app/migrations/ 下会有移植文件
- 查看sql语句,执行
python manage.py sqlmigrate YourAppName FileId
- 查看并编辑bd.sqlite3
可以使用第三方软件 SQLite Expert Personal
页面呈现数据
- views.py中import models
- 输入
value = models.Article.objexts.get(pk=1)
render(request,page,{'article':value})
- 在html文档可以直接使用对象以及对象的“.”操作
article.title
(未完待续)