Django 基础
web框架是什么
|运行服务,连接, | 框架提供的
|读取报文,解析报文,| 辅助函数
HTTP格式的报文---->|包装为python对象 | |
| | python对象 | v
| |------------> |
|web框架 | | 我们的代码
|(Django) |<------------ |
| | python数据 |
HTTP格式的报文 | |
<-----------------|将python数据转化为 |
|报文,发送给客户端 |
|,处理链接和资源 |
- web框架实际上是一个python的软件包
web请求基本流程
url配置 实际处理函数 数据模型 数据库
urls.py ---> views.py --> models.py --> sqlite3
| \
<-------------------| \--- 其他服务
|
v
模板 html(不是必然,可能会返回json,API等)
templates
url配置:Django中为urls.py
请求进来,优先到url配置,匹配模式,从上向下依次找相匹配的模式,由模式指定函数来处理这个请求。像一个书的目录。控制器:Django中为views.py
实际上编写业务逻辑。数据模型:Django中为models.py
html模板:Django中为html
核心组件是如何连接在一起的?
全局配置(settings.py)
ROOT_URLCONF="pydiscuz.urls" --> 总urls.py --> 各app中的urls.py
INSTALLED_APPS=( 'app1',
'app2',
'app3',
...)
数据模型和模板通过INSTALLED_APPS配置到对应的APP中的models.py和templates文件夹中找
- urls.py 和 views.py 是从全局配置里面引出来的
- models.py 和 templates/ 是从注册应用中找到的
编写一个页面的流程
- 定义数据结构,编写models.py 文件(永远数据结构为先,我们会考虑,他对我们的数据产生什么变化,对数据有什么改动)
- 设定urls.py(确定功能应在什么url上访问)
- 编写对应的处理函数,在views.py中(由url模式匹配到一个处理函数)
- 编写模板,在templates/下(处理函数说明我们要返回什么页面)
数据模型 和 数据库
- 数据模型 和 数据库 不是在一起的。
- 框架提供一个方法,可以让我们用python类的形式来编写数据模型
- 能够用一条简单的命令在数据库中创建与之对应的数据表
- 把数据库的表结构映射为python里面的一个类
- 数据库 表中的一行就是python类中的一个实例
运行Django程序
同步 数据模型 到 数据库
$ python manage.py syncdb
运行服务
$ python manage.py runserver