初识Django第一节

一、web开发基本术语

1.两种架构

CS架构:CS架构(Client/Server:客户端-服务端架构)
BS架构:BS架构(Browser/Server:浏览器-服务端架构,特殊的CS)

2.两种开发模式

MVC开发模式:

M即Model: 是应用程序中用于处理数据逻辑的部分
V即View: 视图是指用户看到并与之交互的界面
C即Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图,它使视图与模型分离开

MTV开发模式:

M:Model,数据模型:这是一个抽象层,用来构建和操作web应用中的数据
T:Template,模板层,负责显示数据
V:View,视图:用于封装负责处理用户请求及返回响应的逻辑

Django 里更关注的是模型(Model)、模板(Template)和视图(Views),所以Django也被称为MTV框架。
MVC与MTV在本质上是一样的,都是为了分工明确、“低耦合”

3.Django中两种开发模式的定义

MVC:
M :数据存取部分,由django数据库层处理
V: 显示数据的界面
C:根据用户输入委派视图的部分,由 Django 框架根据 URLconf 设置,对给定 URL 调用适当的 Python 函数(视图函数)。
MTV:
M :代表模型(Model),即数据存取层。 该层处理与数据相关的所有事务。例如:如何存取、如何验证有效
T :代表模板(Template),即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
V :代表视图(View),即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 可以把它看作模型与模板之间的桥梁。

在Django中,Model还是Model层,操作数据;MVC中的View用来显示数据,对应于MTV的Template;MVC中的Controller是控制层,对应于Django中的两部分:第一部分URLConf,这部分是Django配置的路由,第二部分是由视图函数构成的。

二、Django简介

1.Django的优势
  • 强大的后台功能
  • 优雅的网址设计
  • 可插拔的 App 理念
  • 开发效率很高
2.安装Django

pip install django(安装最新版Django)
pip install django==2.0.6(安装2.0.6版本)

三、Hello Django

1.运行流程
1、根据项目配置文件settings.py中的
ROOT_URLCONF找到总路由模块的路径。

2、加载总路由文件,寻找urlpatterns变量,依次去匹配URL,直到匹配到第一个路径,然后根据匹配的路径执行视图函数,或者也可以通过include()函数加载子路由文件(更常用)。

3、子路由文件中取寻找urlpatterns变量,匹配路径,寻找对应的视图函数。
2.启动开发服务器

几种常见的启动方式

  1. 绑定本地端口号为8000
    python manage.py runserver

  2. 绑定本地端口号为8888
    python manage.py runserver 8888

  3. 绑定某个主机端口号为8888
    python manage.py runserver ip地址:8888

注意:如果想要任何主机都能问,则settings.py中 ALLOWED_HOSTS = [’*’,]

3.命令行创建项目与应用
  1. 创建项目

django-admin.py startproject 项目名称

  1. 创建应用

python manage.py startapp app名称

四、配置路由

1.通过path()函数配置(通过路由匹配路径)
2. 通过re_path()函数配置(通过正则匹配路径)
3. URL动态传参

1.通过在path()函数中的第一个url参数,捕获客户端传递的参数,也就是匹配URL中添加"<参数名>"动态捕获参数。
2.如果通过re_path()函数捕获参数,则通过命名分组的方式捕获参数,
(?P<参数名称>正则表达式)
视图函数中的形式参数名与URL动态捕获的参数名一致

4、 设置额外参数:以字典形式传递参数到视图函数,字典的key与视图函数的形式参数名一致

path(‘路由’,视图函数名,{key:value})
re_path(‘路由’,视图函数名,{key:value})

5、路径转换器

URL捕获到参数后,常用的转换器:
str 匹配除路径分隔符之外的任何非空字符串,并将参数转换为字符串,这个是默认转换器
int 匹配零或任何正整数。返回一个int
uuid:匹配格式化的uuid,转换为UUID类型的对象,如 075194d3-6885-417e-a8a8-6c931e272f00
注:uuid是全局唯一标识符(univeral unique identifier),通常用32位的一个字符串的形式来表现。有时也称guid(global unique identifier)。python中自带了uuid模块来进行uuid的生成和管理工作
path,匹配任何非空字符串,包含路径分隔符(/)
slug 可理解为注释、后缀或附属,常作为URL的解释性字符。可匹配任何ASCII字符以及连接符和下划线,能使URL更加清晰易懂,比如网页的标题是"13岁的孩子",其URL地址可以设置为"13-sui-de-hai-zi"。

五、视图函数

1.视图函数的第一个位置参数为请求对象,可以接收URL传递过来的参数
2.视图函数加载模板
  1. 视图函数通过返回render(request,‘模板路径’)函数加载模板
  2. 视图函数也可以通过render()函数向模板传递字典,模板接收到数据后可以通过{{ 模板变量名 }}显示数据,模板变量名必须与字典中的key一致。

六、获取请求信息

请求信息存放在视图函数的参数request中
request的常用属性:
  1. COOKIES:获取客户端Cookie信息
  2. FILES:字典对象,包含所有的上传文件
  3. GET:获取GET请求的请求参数
  4. POST:获取POST请求中请求体中的请求参数
  5. method:获取该请求的请求方式
  6. path:获取请求路径
  7. user:获取当前请求的用户信息
  8. META:获取客户端的请求头信息,eg: request.META.get(“REMOTE_ADDR”)获取客户端的IP地址

七、JsonResponse

  1. 这个类是HttpResponse的子类
  2. 它的默认Content-Type 被设置为: application/json
  3. 第一个参数,data应该是一个字典类型,当 safe 这个参数被设置为:False ,那data可以填入任何能被转换为JSON格式的对象,比如list, tuple, set。 默认的safe 参数是 True.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值