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. hdu 2897简单博弈

    #include<stdio.h> int main() {     int n,p,q,k;    while(scanf("%d%d%d",&n,& ...

  2. floyd求最小环 模板

    http://www.cnblogs.com/Yz81128/archive/2012/08/15/2640940.html 求最小环 floyd求最小环 2011-08-14 9:42 1 定义: ...

  3. UVALive Archive - 6196 - Party Games

    题目: You've been invited to a party. The host wants to divide the guests into 2 teams for party games ...

  4. [MySQL]--查询性能分析工具-explain关键字

    explain显示了MySQL如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. explain的使用方法很简单,只需要在select查询语句前面加上expl ...

  5. JAVA反映机制A

    以下这个URL讲得不错,可以把概念和用途结合起来, 练练手: http://blog.csdn.net/xiaohai798/article/details/11640427 import java. ...

  6. MySQL命名、设计及使用规范《MySQL命名、设计及使用规范》

    数据库环境 dev:开发环境,开发可读写,可修改表结构.开发人员可以修改表结构,可以随意修改其中的数据但是需要保证不影响其他开发同事. qa:测试环境,开发可读写,开发人员可以通过工具修改表结构. s ...

  7. Yarn的工作流程

    http://study.163.com/course/courseLearn.htm?courseId=1002887002#/learn/video?lessonId=1003346099& ...

  8. javascript推断浏览器类型

    <script> window["MzBrowser"]={};(function() { if(MzBrowser.platform) return; var ua ...

  9. [Python] Use Static Typing in Python 3.6

    In this lesson, you will learn how to statically type variables in Python 3.6 Static typing can help ...

  10. PAAS平台的web应用性能測试与分析

    引言 为什么我会写这一篇博客,由于近期非常多京东云擎jae的用户反应一个问题就是他们部署在jae上面的应用訪问非常慢,有极少数应用甚至常常出现504超时现象.当然大家首先想到的是jae性能太差,这也是 ...