17-静态文件配置1
静态的文件的配置不能直接将CSS、JS文件直接放在templates的文件夹中
要将所有的静态文件放在static的文件夹中,然后配置上静态文件static的路径
要想访问Django这个文件,就必须要使用它的别名去访问
Django就是通过别名路径去找实际的路径


18-静态文件配置2
写项目的时候,不要把JS、CSS文件放在和HTML相同的目录文件里,要把不同的文件放在不同的地方

19-路由控制之简单配置
Django的主体内容就是MTV+控制器,4个部分
为了保证网页浏览的严谨性,需要对网页的路径进行配置,在网页的路由分发处,加上正则表达式,确保路径的唯一性
"""first_pro URL Configuration
 
The `urlpatterns` list routes URLs to views. For more information please see:
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, re_path
from app01 import views
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('timer/', views.timer),
    path('login/', views.login),
    # 路由配置,哪一个路径由哪一个视图函数处理,路由------>视图函数
    re_path(r'^articles/2003$', views.articles)
 
]
from django.shortcuts import render,HttpResponse
# HttpResponse:就是响应对象,响应对象就是一串响应的字符串
# Create your views here.
 
 
def timer(request):
    import time
    ctime = time.strftime('%Y-%m-%d %X', time.localtime(time.time()))
    return render(request, "time.html", {"date": ctime})
 
 
def login(request):
    return render(request, 'login.html')
 
 
def articles(request):
    return HttpResponse('Hello World')
 
 
def ach(request, year):
    return HttpResponse('Not a big deal %s' % year)
 
 
def mon_ach(request, year, mon):
    return HttpResponse('Hello %s-%s' % (year, mon))
注意:
  • 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。
  • 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。
  • 每个正则表达式前面的'r' 是可选的但是建议加上。它告诉Python 这个字符串是“原始的” —— 字符串中任何字符都不应该转义

20-路由控制之有名分组
传参数的时候是按照位置传参数的,关键字传参数可以有效的避免参数传入的时候考虑名称的参数传入
关键字传参数
21-路由控制之分发
22-路由控制之登录验证示例
from django.shortcuts import render,HttpResponse
# HttpResponse:就是响应对象,响应对象就是一串响应的字符串
# Create your views here.
 
 
def timer(request):
    import time
    ctime = time.strftime('%Y-%m-%d %X', time.localtime(time.time()))
    return render(request, "time.html", {"date": ctime})
 
 
def login(request):
    print(request.method)
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        # print(request.GET)
        print(request.POST)
        user = request.POST['user']
        pwd = request.POST['pwd']
        if user == 'pandaboy' and pwd == '123':
            return HttpResponse('登录成功')
        else:
            return HttpResponse('登录失败')
 
 
 
 
def articles(request):
    return HttpResponse('Hello World')
 
 
def ach(request, year):
    return HttpResponse('Not a big deal %s' % year)
 
 
def mon_ach(request, month, year):
    return HttpResponse('Hello %s-%s' % (year, month))
23-路由控制之反向解析1
做开发的时候会随着变更需求,而不断的去更改url,一旦更改了,之前的函数就会有问题
在使用Django 项目时,一个常见的需求是获得URL 的最终形式,以用于嵌入到生成的内容中(视图中和显示给用户的URL等)或者用于处理服务器端的导航(重定向等)。人们强烈希望不要硬编码这些URL(费力、不可扩展且容易产生错误)或者设计一种与URLconf 毫不相关的专门的URL 生成机制,因为这样容易导致一定程度上产生过期的URL。
在需要URL 的地方,对于不同层级,Django 提供不同的工具用于URL 反查:
  • 在模板中:使用url 模板标签。
  • 在Python 代码中:使用from django.urls import reverse()函数
 
24-流程控制之反向解析2
反向解析的目的就是不写死url,而是利用url的别名机制,取代访问url的路径

25-路由控制之名称空间1
命名空间(英语:Namespace)是表示标识符的可见范围。一个标识符可在多个命名空间中定义,它在不同命名空间中的含义是互不相干的。这样,在一个新的命名空间中可定义任何标识符,它们不会与任何已有的标识符发生冲突,因为已有的定义都处于其它命名空间中。
由于name没有作用域,Django在反解URL时,会在项目全局顺序搜索,当查找到第一个name指定URL时,立即返回
我们在开发项目时,会经常使用name属性反解出URL,当不小心在不同的app的urls中定义相同的name时,可能会导致URL反解错误,为了避免这种事情发生,引入了命名空间。
26-路由控制之名称空间2
include使用元祖的形式包装名称空间的路径

路飞学城Python-Day78的更多相关文章

  1. 路飞学城—Python爬虫实战密训班 第三章

    路飞学城—Python爬虫实战密训班 第三章 一.scrapy-redis插件实现简单分布式爬虫 scrapy-redis插件用于将scrapy和redis结合实现简单分布式爬虫: - 定义调度器 - ...

  2. 路飞学城—Python爬虫实战密训班 第二章

    路飞学城—Python爬虫实战密训班 第二章 一.Selenium基础 Selenium是一个第三方模块,可以完全模拟用户在浏览器上操作(相当于在浏览器上点点点). 1.安装 - pip instal ...

  3. 路飞学城Python爬虫课第一章笔记

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...

  4. 路飞学城-Python开发集训-第3章

    学习心得: 通过这一章的作业,使我对正则表达式的使用直接提升了一个level,虽然作业完成的不怎么样,重复代码有点多,但是收获还是非常大的,有点找到写代码的感觉了,遗憾的是,这次作业交过,这次集训就结 ...

  5. 路飞学城-Python开发集训-第1章

    学习体会: 在参加这次集训之前我自己学过一段时间的Python,看过老男孩的免费视频,自我感觉还行,老师写的代码基本上都能看懂,但是实际呢?....今天是集训第一次交作业的时间,突然发现看似简单升级需 ...

  6. 路飞学城-Python开发集训-第4章

    学习心得: 学习笔记: 在python中一个py文件就是一个模块 模块好处: 1.提高可维护性 2.可重用 3.避免函数名和变量名冲突 模块分为三种: 1.内置标准模块(标准库),查看所有自带和第三方 ...

  7. 路飞学城-Python开发集训-第2章

    学习心得: 这章对编码的讲解超级赞,现在对于编码终于有一点认知了,但还没有大彻大悟,还需要更加细心的琢磨一下Alex博客和视频,以前真的是被编码折磨死了,因为编码的问题而浪费的时间很多很多,现在终于感 ...

  8. 路飞学城-Python开发-第二章

    ''' 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家' ...

  9. 路飞学城-Python开发-第三章

    # 数据结构: # goods = [ # {"name": "电脑", "price": 1999}, # {"name&quo ...

  10. 路飞学城-Python开发-第一章

    # 基础需求: # 让用户输入用户名密码 # 认证成功后显示欢迎信息 # 输错三次后退出程序 username = 'pandaboy' password = ' def Login(username ...

随机推荐

  1. JVM学习-jvm结构(一)

    java是跨平台的语言.一次编译多端使用.究竟是如何实现的呢 1.首先编译器会将java 文件编译成class文件.然后在不同的平台使用对应的虚拟机.不同虚拟机的内装载系统将class文件转换平台能执 ...

  2. Linux磁盘分区方案(转)

    硬盘分区的各个分区的意义 尽管可以根据我们已经提到的分区原则,Linux装在一个单一的大分区中,但更好的主意是将它分开.综合了单一分区的简单性和多分区的灵活性,我们推荐以下配置.请注意:如果你想安装L ...

  3. 配置db账号和密码时一定注意空格问题、空行问题否则连接报错

    #postgresql dbpg.datasource.type=com.alibaba.druid.pool.DruidDataSourcepg.datasource.driverClassName ...

  4. PostgreSQL sum typecasting as a bigint

    https://stackoverflow.com/questions/20203081/postgresql-sum-typecasting-as-a-bigint Question: I am d ...

  5. uva 10479(找规律+递归)

    题意:有一个初始序列第一个数字是0. 规律是把前一次推出来的每个数字x.先接x个0,然后接x+1. 0 –> 1 –> 02 –> 1003 –> 02110004 那么这个序 ...

  6. mac 下作流程图工具omnigraffle

    omnigraffle:http://www.uzzf.com/soft/91710.html 含盖激活码: Name: mojado Serial: JYFE-JRJN-GSOT-GRAG-EVJI ...

  7. SpringMVC实战(三种映射处理器)

    1.前言 上一篇博客,简单的介绍了一下SpringMVC的基础知识,这篇博客来说一下SpringMVC中的几种映射处理器机制. 2.三种映射处理器 2.1 BeanNameUrlHandlerMapp ...

  8. HDU--1558--Segment set--并查集***经典***

    Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

  9. CodeForces 596A

    Description After making bad dives into swimming pools, Wilbur wants to build a swimming pool in the ...

  10. python 下串口数据的读取,解析,和保存-

    #!/usr/bin/python # -*-coding: utf-8 -*- import serial import threading import binascii from datetim ...