CSS Ribbon

Reproducing the GitHub Ribbon in CSS

路飞学城Python-Day78

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使用元祖的形式包装名称空间的路径

posted on 2018-09-17 23:07  pandaboy1123  阅读(192)  评论(0编辑  收藏  举报

导航