day45

内容回顾

#### 1. HTTP协议
  1. tcp/IP协议

  2. HTTP特性:

    1. 无连接

    2. 请求--响应模式

    3. 请求格式

  3. 响应格式

    1. Django相关

      1. Django下载

        1. 命令行:

          pip install django==1.11.20 # 指定版本号

          pip install django==1.11.20 -i 豆瓣源

        2. pycharm

          1. 打开file

          2. settings

          3. project

          4. 点击+号

          5. input输入名称

          6. 不需要指定版本(直接install)

          7. 在右侧S开头选择对应版本,安装即可。

      2. 创建项目(第一次)

        1. 命令行模式

          django-admin startproject 项目名称

        2. pycharm

          1. 打开file

          2. new project 选择django

          3. 在顶部选择项目路径以及,项目名称

          4. 选择解释器

          5. app应用名称

          6. create创建

      3. 创建app

        1. 命令行模式(manage.py 同级目录)

          python manage.py startapp app名称

        2. tools---> Run manage.py Task ----直接输入命令即可

      4. 启动项目

        1. 命令行模式

          python manage.py runserver # 127.0.0.1:8000

          python manage.py runserver 8888 # 127.0.0.1:8888

          python manage.py runserver 192.168.1.2:8001 # 192.168.1.2:8001

        2. pycharm

          1. 找到项目select

          2. 点击edit

          3. host和port---->ok

          4. 绿色右三角按钮

      static配置注意:

今日概要

  1. 路由层

    1. 视图层

      1. 模板层

今日详细

  1. 路由的简单使用

    urlpatterns = [
       path('admin/', admin.site.urls),
       path('login/', views.login),
       url(r'^articles/2003/$', views.article_2003),
       url(r'^articles/[0-9]{4}/$', views.article_year),

    ]
    1. 无名分组(按位置传参)

      url(r'^articles/([0-9]{4})/$', views.article_year),
    2. 有名分组(按关键字传参)

      1. 简单使用

        url(r'^articles/(?P<year>[0-9]{4})/$', views.article_year),

        注意事项:

        • 视图函数的形参,必须要跟有名分组的名称,同名,(顺序没有关系)

        • URL有几个分组,就必须要接收几个参数。

    3. 路由分发

      1. 简单使用

        1. 项目最顶级的URL配置

          from django.conf.urls import url  # 运用django1版本的URL
          from django.urls import path, re_path, include
          urlpatterns = [
             url(r'^app01/', include("app01.urls")),
             url(r'^app02/', include("app02.urls"))

          ]
        2. 每个APP应用里面新建urls.py文件

          from django.conf.urls import url
          from app01 import views

          urlpatterns = [
             url(r'^login/$', views.login)
          ]

          注意事项:

          1. 项目顶级URL,结尾不要加$;

            1. include参数字符串路径,必须要写正确。

​ URL、path、re_path区别:

  1. URL

    1. 自己定制匹配规则

      1. path

        1. 自动带开头和结尾匹配规则

          1. include,自动去掉后面的$,进行URL拼接

  2. re_path

    1. 等同于django1版本的URL。

  3. 视图层

    1. request对象

      1. 属性

        1. request.GET # 获取以GET请求方式,提交数据一个类似字典(QueryDict)

          request.GET.get("key") # 推荐写法

          request.GET.getlist("key") # 返回一个多值的列表

          request.GET["key"] # 不推荐,会报错

        2. request.POST # 获取以POST请求方式,提交数据一个类似字典(QueryDict)

          request.POST.get("key") # 推荐写法

          request.POST.getlist("key") # 返回一个多值的列表

          request.POST["key"] # 不推荐,会报错

        3. request.body # 请求体相关内容,原生的字节

        4. request.path # 获取URL路径,没有IP和端口

        5. request.method # 获取请求方式,大写

      2. 方法:

        1. get_full_path() # 获取URL的完整路径。

        2. is_ajax() # 返回布尔值,判断当前请求是否是ajax。

    2. HTTPResponse对象

      1. HttpResponse("想要显示的内容")

      2. render(request, "模板名称", [ 可选参数])

      3. redirect("要跳转的URL地址")

  4. 模板层

    1. 变量

      语法:{{ name }}

    2. 过滤器

      {{obj|filter__name:param}}

      1. default

        设置默认值,两个参数,

      2. length

        获取长度, 只需一个参数|前

      3. filesizeformat

        格式化文件尺寸,只需一个参数|前

      4. date:"Y-m-d"

        格式化是日期。一个参数

      5. truncatechars

        截取字符串,两个参数,后面截取长度。

      6. safe

    1. 标签

      1. for标签

        遍历每一个元素,展示数据

      2. if标签

        判断,从而影响,页面展示效果

      3. with标签

        定义一个中间变量

      4. csrf_token标签

        用于跨站请求伪造保护

    1. 自定制过滤器和标签

      1. 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.

      2. 在app中创建templatetags模块(模块名只能是templatetags)

      3. 创建任意 .py 文件

      4. 在使用自定义simple_tag和filter的html文件中导入之前创建的 my_tags.py

      5. 如何使用

        {% load my_tags %}  
             
        {% load my_tags %}

        {{ li.0|filter_multi:li.1 }}

        {% simple_tag_multi li.0 li.1 v3=li.2 %}

        <p>{% my_input 3 "aaa" %}</p>

        注意:filter可以用在if等语句后,simple_tag不可以

今日作业

​ 运用今天所学的知识点,完成书籍展示页面(运用bootstrap的表格展示)

  数据见博客。

day_45_Django的更多相关文章

随机推荐

  1. Linux的DNS配置2-主从服务器

    1.实验背景 之前写了Linux的DNS配置1-DNS入门,其中只用了一台DNS服务器,但一般在大型网络中,都要通过配置辅助DNS服务器可以提高DNS服务的可靠性,本次实验即配置DNS主从服务器 2. ...

  2. jdbc笔记(一) 使用Statement对单表的CRUD操作

    jdbc连接mysql并执行简单的CRUD的步骤: 1.注册驱动(需要抛出/捕获异常) Class.forName("com.mysql.jdbc.Driver"); 2.建立连接 ...

  3. bzoj2839 集合计数(容斥)

    2839: 集合计数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 883  Solved: 490[Submit][Status][Discuss] ...

  4. ASCII对应码表-键值(完整版)

    ASCII对应码表-键值(完整版) Bin (二进制) Oct (八进制) Dec (十进制) Hex (十六进制) 缩写/字符 解释 0000 0000 00 0 0x00 NUL(null) 空字 ...

  5. Raphael.js--基础1

    Raphael.js 特点: 1.兼容VML和SVG 2.扩展功能——动画 用法: //1.创建画布 let paper=Raphael(x,y,width,height); //2.创建形状 let ...

  6. 王之泰《面向对象程序设计(java)》课程学习总结

    第一部分:理论知识学习部分 总复习纲要 1. Java语言特点与开发环境配置(第1章.第2章) 2. Java基本程序结构(第3章) 3. Java面向对象程序结构(第4章.第5章.第6章) 4. 类 ...

  7. fmt.Sprintf格式化使用

    格式化写法: fmt.Sprintf(格式化样式, 参数列表-) 参数说明: 格式化样式:字符串形式,格式化动词以%开头. 参数列表:多个参数以逗号分隔,个数必须与格式化样式中的动词个数对应,否则运行 ...

  8. linux服务基础(一)之CentOS6编译安装httpd2.4

    安装http-2.4 Http依赖于apr-1.4+,apr-util-1.4+ CentOS6上默认是apr-1.3,apr-util1.3 先编译安装apr-1.5,apr-util-1.5 开始 ...

  9. Clover 安装 Mac 系统更新 (原版黑苹果)

    关于使用原版镜像(即 .dmg )安装黑苹果的升级,笔者写写自身经验吧. 在Clover启动的界面中与Mac OS有关的启动菜单有以下这些: Boot FileVault Prebooter from ...

  10. IOS高级开发之多线程(五)NSOperation 2

    接着看NSOperation.NSOperationQueue线程间的通信: 应用场景:比如我们经常把一些耗时的操作比如下载图片放在子线程,那么当这个完成之后,我们就需要回到主线程,这个时候就需要用到 ...