python基础(十八)

目录                          

1.正则表达式

2.组件

3.django框架

一、正则表达式                               

作用:1,判断字符串是否符合规定的正则表达式  ----test

   2,获取匹配的数据   exec

  用户登录的时候 常常需要用到正则进行匹配用户输入的是否符合要求:

实验案例一:判断字符串是否符合定义的正则表达式要求

 exec 使用方法:

   rep = /\d+/;  定义一个正则表达式,匹配数字
str = "DongGuang_061600_BeiJing_10000"  定义一个字符串
rep.exec(str)  使用rep正则表达式匹配str这个字符串中符合的数据
# ["67"]    结果明显看出,使用这种方式,无论执行几次都是获取第一个数据

str = 'JavaScript is more fun than Java or JavaBeans!' 定义一个字符串 var pattern = /Java\w*/; 定义一个正则规则,\w的意思是陪陪一Java开头的一个单词 pattern.exec(str) ["JavaScript"]

str = 'JavaScript is more fun than Java or JavaBeans!'  定义一个字符串
var pattern = /\bJava(\w*)\b/;  定义一个正则规则,这里把上面的\w*括起来的其意思是,当获取到第一次匹配后,会把结果再次进行匹配,把第一次匹配的内容去除

剩余的内容当做第二次匹配的结果
pattern.exec(str)
["JavaScript", "Script"]

全局匹配

关键参数g

str = 'JavaScript is more fun than Java or JavaBeans!'  定义一个字符串
var pattern = /\bJava(\w*)\b/g;  定义一个正则规则,在上一个的基础上加了一个g,意思是当每次执行这个正则的时候,都会筛选下一个选择,当执行到最后一个,没有匹配到结果为null
pattern.exec(str)
["JavaScript", "Script"]
pattern.exec(str)
["Java", ""]
pattern.exec(str)
["JavaBeans", "Beans"]
pattern.exec(str)
null

多行匹配

关键参数 m

str = 'JavaScript is more fun than \nJava or JavaBeans!'   #定义一个字符串,其中有一个换行符号
"JavaScript is more fun than 
Java or JavaBeans!"
var pattern = /^Java\w*/g;   #定义一个正则表达式,全局匹配开头为Java的单词
undefined
pattern.exec(str) #第一次匹配结果
["JavaScript"]
pattern.exec(str) #第二次匹配结果
null
pattern.exec(str)  #第三次匹配结果
["JavaScript"]
pattern.exec(str)  #第四次匹配结果
null
var pattern = /^Java\w/gm;  #定义一个正则表达式,全局多行匹配开头为Java,
undefined
pattern.exec(str)
["JavaScript"]
pattern.exec(str)
["Java"]

不区分大小写匹配

关键参数 i

响应式:

响应式html编程大概意思是当浏览器的宽度到达某个程度的时候,css中的某个样式生效

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .c1{
            background-color: red;
        }
        /*c1这个div最小像素是500,当宽度小于500px的时候,此样式不生效*/
        @media (min-width: 500px) {
            .c1{
                background-color: green;
            }
        }
    </style>
</head>
<body style="margin: auto">
    <div class="c1">
        1
    </div>
</body>
</html>

三、django框架的安装及使用

1.django安装

    pip3 install django

  2.创建一个工程

    django-admin startproject  management_system

    django-admin startproject  项目名称

  3.启动工程

    cd management_system  # 进入到项目目录

    python3 manage.py runserver  #启动项目

    如果不指定端口默认启动端口为127.0.0.1:8000端口

    也可以指定端口

    python3 manage.py runserver 127.0.0.1:8001

  4.web访问

  5.目录介绍

    -management_system  项目名称

      |--management_system   #对整个程序进行配置

        -__init__.py

        -settings.py   # 配置文件,配置数据库连接、模板连接等等

        -urls.py # URL和函数对应关系,当用户来访问程序的是,就会根据url进行匹配

        -wsgi.py # 首先wsgi是一套规则,django是一个web框架不负责给我创建socket连接,所以这里调用wsgi模块进行socket的创建,我们代码只需

              要进行编写函数,处理wsgi传过来的数据就可以了。

      -manage.py  # 管理django程序的:

              1.python manage.py runserver 启动django

              2.python manage.py startapp APP名称  创建app程序(可以理解为子模块)

              3.python manage.py makemigrations 

               python manage.py migrate  通过这两个命令可以连接数据库,创建表

  6.创建工程pycharm也可以帮我们创建,这样创建和我们使用命令创建是一个效果

7.写一个测试页面的html,http://127.0.0.1:8000/test.html

"""management_system URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse

def test(request):
    return HttpResponse('<h1>This is a test pag!</h1>')

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^test.html/', test),
View Code

8.创建一个app

当我写一个运维平台的是,可能会有这么的模块,那么每个模块我们叫做一个app,这样就实现了代码分离,数据库共享的效果!

  win下面创建app没有什么好的办法,需要我们使用命令:

    python manage.py startapp APP名称

 9.app目录介绍

  APP目录

   |--migrations  数据库操作记录目录

   --__init__.py     

     --admin.py  #django后台管理配置

   --apps.py  # 配置当前app

     --models.py # django后台管理数据库表管理文件,创建指定的类,models可以创建表结构

         --tests.py   # 单元测试

         --views.py  # 写和当前app相关的所有业务代码

 10.django的html模板目录的配置

  依次找到:工程目录-->settings.py文件 修改TEMPLATES列表中的DIRS对应的值为“[os.path.join(BASE_DIR,'创建的模板目录名字')]”

 11.django的静态文件目录的配置

  依次找到:工程目录-->settings.py文件 最后面增加STATUICFILES_DIRS ,切记最后一定要逗号

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

 12. django返回数据的时候如果返回一个html的时候,我们的想法是,打开一个html读出数据来,把整个数据返回给客户端,但是这种模式假如有好多访问需要不断

      的我们来打开文件,这样很麻烦;django后来给我们封装了一个方法我们引入render这个方法进行返回就行了,其实他内部也是打开返回这么操作的。

from django.shortcuts import render

      假如我们要重定向到另外一个网站的时候:就需要引入我redirect这个方法进行返回

from django.shortcuts import redirect

 我们来梳理一下一个请求过来大致的流程:

 

 9.app目录介绍

  APP目录

   |--migrations  数据库操作记录目录

   --__init__.py     

     --admin.py  #django后台管理配置

   --apps.py  # 配置当前app

     --models.py # django后台管理数据库表管理文件,创建指定的类,models可以创建表结构

         --tests.py   # 单元测试

         --views.py  # 写和当前app相关的所有业务代码

 10.django的html模板目录的配置

  依次找到:工程目录-->settings.py文件 修改TEMPLATES列表中的DIRS对应的值为“[os.path.join(BASE_DIR,'创建的模板目录名字')]”

 11.django的静态文件目录的配置

  依次找到:工程目录-->settings.py文件 最后面增加STATUICFILES_DIRS ,切记最后一定要逗号

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

 12. django返回数据的时候如果返回一个html的时候,我们的想法是,打开一个html读出数据来,把整个数据返回给客户端,但是这种模式假如有好多访问需要不断

      的我们来打开文件,这样很麻烦;django后来给我们封装了一个方法我们引入render这个方法进行返回就行了,其实他内部也是打开返回这么操作的。

from django.shortcuts import render

      假如我们要重定向到另外一个网站的时候:就需要引入我redirect这个方法进行返回

from django.shortcuts import redirect

 我们来梳理一下一个请求过来大致的流程:

 9.app目录介绍

  APP目录

   |--migrations  数据库操作记录目录

   --__init__.py     

     --admin.py  #django后台管理配置

   --apps.py  # 配置当前app

     --models.py # django后台管理数据库表管理文件,创建指定的类,models可以创建表结构

         --tests.py   # 单元测试

         --views.py  # 写和当前app相关的所有业务代码

 10.django的html模板目录的配置

  依次找到:工程目录-->settings.py文件 修改TEMPLATES列表中的DIRS对应的值为“[os.path.join(BASE_DIR,'创建的模板目录名字')]”

 11.django的静态文件目录的配置

  依次找到:工程目录-->settings.py文件 最后面增加STATUICFILES_DIRS ,切记最后一定要逗号

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

 12. django返回数据的时候如果返回一个html的时候,我们的想法是,打开一个html读出数据来,把整个数据返回给客户端,但是这种模式假如有好多访问需要不断

      的我们来打开文件,这样很麻烦;django后来给我们封装了一个方法我们引入render这个方法进行返回就行了,其实他内部也是打开返回这么操作的。

from django.shortcuts import render

      假如我们要重定向到另外一个网站的时候:就需要引入我redirect这个方法进行返回

from django.shortcuts import redirect

 

posted @ 2016-12-09 09:40  chaishao  阅读(167)  评论(0编辑  收藏  举报