初识将狗

1.python中3个常用web框架

  有django,flask,tornado,他们都主要由下面3大元素组成:

  a:socket

  b:路由跟视图函数匹配关系

  c:模板渲染

  几大框架的各自特点:

  django:a,用了别人的wsgiref  b,自己写的  c,自己写的

  flask:   a  用了别人的       b,  自己写的        c,用了别人的jinja2

  tornado:a,自己写的       b,自己写的       c,自己写的

2.htpp协议:

  特点:1.基于TCP/IP协议之上的应用层协议

     2.基于请求-响应模式

     3.无状态保存

       4.无连接

  #无状态保存。HTTP协议自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个级别,协议对于发送过的请求或响应都不做持久化处理。使用HTTP协议,每当有新的请求发送时,就会有对应的新响应产生。协议本身并不保留之前一切的请求或响应报文的信息。这时为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单的。可是,随着web的不断发展,因无状态而导致业务处理变得棘手的情况增多了。比如,用户登录到宜家购物网站,即使他跳转到该站的其他页面后,也需要能继续保持登录状态。针对这个案例,网站为了能掌握是谁送出的请求,需要保存用户的状态。HTTP/1.1虽然是无状态协议,但为了实现期望的保持状态功能,于是引入了Cookie技术。有了Coolkie再用HTTP协议通信,就可以管理状态了。

  #无连接

  无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并受到客户的应答后,即断开连接采用这种方式可以节省传输时间。

  请求格式:请求行,请求头,空行,请求体

  响应格式:起始行,响应头部,空行,响应报文主体

重点:

请求:

  请求首行 get /http/1.1 \r\n

  请求头:key:value\r\n

  请求体

响应:

  响应首行 http/1.1 200 ok \r\n

  响应头:key:value

  响应体:html的代码

补充:使用get请求数据时,提交方式是?name=aa这种形式

127.0.0.1:8000/book_list/?name=aa

django中json数据从POST中是取不出来的,只能从body中取出,然后反序列化

3.django的安装与使用

  方式1:在pacharm的Terminal命令行里输入 pip3 install django==1.11.9           #指定版本号为1.11.9,如果不指定版本号,则下载的是最新版

  方式2:在pacharm的Project Interpreter右侧点+号,再输入django再点Specify version可以选择版本号

  方式3:cmd命令行

      d:进入d盘

      cd /pb进入pb文件夹

      django-admin startproject hg(项目名)开启新项目

      cd pb/hg进入到项目文件夹

      python3 manage.py startapp app01(app名)创建app

      python3 manage.py runserver 127.0.0.1:8000开启项目

  使用:项目中不要有中文!

     计算机名字不要是中文

     一个工程就是一个项目

  django中app的概念:

    大学:---------------项目

        信息学院-------------------app01

        物理学院-------------------app02

    不同功能放在不同app里,便于管理。

  创建app的方法:1在pecharm创建django项目时点More settings写上app名字

           2在termainal里输入命令

            python3 manage.py startapp app01

  创建了app以后,要在settings里进行配置

4.settings配置

4.1templates

templates文件夹

将app路径放进配置

form提交的四种方式

1)<form action="http://127.0.0.1:8000/login/" method="post">

2)<form action="/login/" method="post">  推荐使用

3)<form aciton='' method="post">

4)<form action='login.html' method='post'>

4.2static

  在settings中要配置下静态文件

    STATIC_URL='/static/'  一般不要改,指的是对应url中static这个模块,而不是static文件夹

    在项目根文件夹下创建一个static文件夹,再进行添加路径

    STATICFILES_DIRS=[

          os.path.join(BASE_DIR,‘static’),创建的文件夹路径(可以写多个)

          os.path.join(BASE_DIR,‘static’)    

    ]

4.3视图层

1)request

  request.method        前台提交过来的请求方式

  request.POST(相当于字典)   post形式提交过来的数据(http请求报文的请求体中)

  request.POST.get('name')     推荐使用get取值(取出列表中的最后一个)

  request.POST['name']     不推荐使用,万一有网络延迟等问题,没有取到值的话会崩溃

  request.POST.getlist('name')  取列表所有值

2)get与post

  get:获取数据,页面,携带数据是不重要的数据(数据量有大小限制)

  post:往后提交数据

5.APPEND_SLASH

在settings里面可以进行配置该参数

APPEND_SLASH=False则不会在输入网址时自动加/ 在django中,默认是设置成True的。

APPEND_SLASH=True则会在输入网址时自动加/

 HttpResponse返回的是普通类型的字符串

 6.MVC和MTV

django是MTV模式:

M:model    模型  负责业务对象和数据库的关系映射(ORM)

 T:Template     模板  负责如何把页面展示给用户(html)

V:view     视图  负责业务逻辑,并在适当时候调用model和template

MVC模式:

M:model   模型

V:view    视图

C:controller  控制器:url+view

M是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。

V是应用程序中处理数据显示的部分(就是显示)。

C是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

 6.Django的生命周期

 

 7.django中数据表迁移命令

1)python3 manage.py makemigrations     记录一下数据库的变化

2)python3 manage.py migrate        将变化同步到数据库中

3)新建app的命令

python3 manage.py startapp blog

    

  

    

转载于:https://www.cnblogs.com/xufengnian/p/9942141.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值