一、正则表达式

1、定义正则表达式

  • /.../ 用于定义正则表达式

  • /.../g 表示全局匹配

  • /.../i 表示不区分大小写

  • /.../m 表示多行匹配
    JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容)

varpattern=/^Java\w*/gm;
vartext="JavaScriptismorefunthan\nJavaEEorJavaBeans!";
result=pattern.exec(text)
result=pattern.exec(text)
result=pattern.exec(text)

注:定义正则表达式也可以reg= new RegExp()

2、匹配

JavaScript中支持正则表达式,其主要提供了两个功能:

  • test(string) 检查字符串中是否和正则匹配

rep=/\d+/;
rep.test("asdfoiklfasdf89asdfasdf")#true
rep=/^\d+$/;
rep.test("123456789")#true

# 只要正则在字符串中存在就匹配,如果想要开头和结尾匹配的话,就需要在正则前后加 ^和$

  • exec(string) 获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。

获取正则表达式匹配的内容,如果未匹配,值为null,否则,获取匹配成功的数组。

非全局模式
获取匹配结果数组,注意:第一个元素是第一个匹配的结果,后面元素是正则子匹配(正则内容分组匹配)
varpattern=/\bJava\w*\b/;
vartext="JavaScriptismorefunthanJavaorJavaBeans!";
result=pattern.exec(text)

varpattern=/\b(Java)\w*\b/;
vartext="JavaScriptismorefunthanJavaorJavaBeans!";
result=pattern.exec(text)

全局模式
需要反复调用exec方法,来一个一个获取结果,直到匹配获取结果为null表示获取完毕
varpattern=/\bJava\w*\b/g;
vartext="JavaScriptismorefunthanJavaorJavaBeans!";
result=pattern.exec(text)

varpattern=/\b(Java)\w*\b/g;
vartext="JavaScriptismorefunthanJavaorJavaBeans!";
result=pattern.exec(text)

字符串中相关方法

obj.search(regexp)获取索引位置,搜索整个字符串,返回匹配成功的第一个位置(g模式无效)
obj.match(regexp)获取匹配内容,搜索整个字符串,获取找到第一个匹配内容,如果正则是g模式找到全部
obj.replace(regexp,replacement)替换匹配替换,正则中有g则替换所有,否则只替换第一个匹配项,
$数字:匹配的第n个组内容;
$&:当前匹配的内容;
$`:位于匹配子串左侧的文本;
$':位于匹配子串右侧的文本
$$:直接量$符号

二、登录注册验证

默认事件先执行:
checkBox
自定义先执行
a
submit
...
<form>

<inputtype='type'/>
<inputtype='password'/>
<inputtype='submit'/>

</form>

$(':submit').click(function(){

$(':text,:password').each(function(){
...returnfalse;
})returnfalse;
})

input,checBox

==================================验证================================
JS:验证

各种验证

$(':submit').click(function(){

$(':text,:password').each(function(){
...returnfalse;
})returnfalse;
})

三、组件

1.BootStrap

下载:http://www.bootcss.com/

学习 BootStrap 规则
  一、响应式
    @media

例:响应式布局

<!DOCTYPEhtml>
<htmllang="en">
<head>
<Metacharset="UTF-8">
<title>Title</title>
<style>
.c1{
background-color:red;
height:50px;
}
@media(min-width:700px){
.c2{
background-color:grey;
}
}
</style>
</head>
<body>
<divclass="c1c2"></div>
</body>
</html>

二、图标、字体
    @font-face
  三、基本使用

加个最先应用的格式

<style>
.no-redus{
border-radius:0px;!important;
}
</style>

2.jQUeryUI *

下载:http://jqueryui.com/

3.EasyUI

下载:http://www.jeasyui.net/

修改css并应用

4.jquery.bxslider轮播图

http://bxslider.com/ 下载引用

<!DOCTYPEhtml>
<htmllang="en">
<head>
<Metacharset="UTF-8">
<title>Title</title>
<linkrel="stylesheet"href="jquery.bxslider/jquery.bxslider.css">
</head>
<body>
<ulclass="bxslider">
<li><imgsrc="image/1.png"style="width:500px;height:200px;"/></li>
<li><imgsrc="image/1.png"style="width:500px"/></li>
<li><imgsrc="image/1.png"style="width:500px"/></li>
</ul>

<scriptsrc="js/jquery-1.12.4.js"></script>
<scriptsrc="jquery.bxslider/jquery.bxslider.js"></script>
<script>
$(document).ready(function(){
$('.bxslider').bxSlider();
});
</script>
</body>
</html>

四、web框架

MVC

Model View Controller
数据库 模板文件 业务处理

MTV

Model Template View
数据库 模板文件 业务处理

############## WEB:MVC、MTV

Web框架本质

众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端。

#!/usr/bin/envpython#coding:utf-8
importsocket
defhandle_request(client):
buf=client.recv(1024)
client.send("HTTP/1.1200OK\r\n\r\n")
client.send("Hello,Seven")
defmain():
sock=socket.socket(socket.AF_INET,socket.soCK_STREAM)
sock.bind(('localhost',8000))
sock.listen(5)
whileTrue:
connection,address=sock.accept()
handle_request(connection)
connection.close()
if__name__=='__main__':
main()

上述通过socket来实现了其本质,而对于真实开发中的python web程序来说,一般会分为两部分:服务器程序和应用程序。服务器程序负责对socket服务器进行封装,并在请求到来时,对请求的各种数据进行整理。应用程序则负责具体的逻辑处理。为了方便应用程序的开发,就出现了众多的Web框架,例如:Django、Flask、web.py 等。不同的框架有不同的开发方式,但是无论如何,开发出的应用程序都要和服务器程序配合,才能为用户提供服务。这样,服务器程序就需要为不同的框架提供不同的支持。这样混乱的局面无论对于服务器还是框架,都是不好的。对服务器来说,需要支持各种不同框架,对框架来说,只有支持它的服务器才能被开发出的应用使用。这时候,标准化就变得尤为重要。我们可以设立一个标准,只要服务器程序支持这个标准,框架也支持这个标准,那么他们就可以配合使用。一旦标准确定,双方各自实现。这样,服务器可以支持更多支持标准的框架,框架也可以使用更多支持标准的服务器。

Wsgi(Web Server Gateway Interface)是一种规范,它定义了使用python编写的web app与web server之间接口格式,实现web app与web server间的解耦。

python标准库提供的独立Wsgi服务器称为wsgiref。

#!/usr/bin/envpython#coding:utf-8
fromwsgiref.simple_serverimportmake_server
defRunServer(environ,start_response):
start_response('200OK',[('Content-Type','text/html')])return['<h1>Hello,web!</h1>'.encode('utf-8'),]
if__name__=='__main__':
httpd=make_server('',8000,RunServer)print"ServingHTTPonport8000..."
httpd.serve_forever()

五、Django

1.安装

pip3installdjango

2.创建Django工程

django-adminstartproject【工程名称】

例如:工程名称为mysite;那么mysite目录下会产生如下目录及文件。

mysite
  - mysite # 对整个程序进行配置
    - init
    - settings # 配置文件
    - url # URL对应关系
    - wsgi # 遵循WSIG规范,uwsgi + Nginx
  - manage.py # 管理Django程序:
    - python manage.py
    - python manage.py startapp xx
    - python manage.py makemigrations
    - python manage.py migrate

Bottle默认支持多种基于Wsgi的服务,如:

server_names={
'cgi':CGIServer,'flup':FlupFCGIServer,'wsgiref':WsgiRefServer,'waitress':WaitressServer,'cherrypy':CherryPyServer,'paste':PasteServer,'fapws3':FapwsServer,'tornado':TornadoServer,'gae':AppEngineserver,'twisted':TwistedServer,'diesel':DieselServer,'meinheld':MeinheldServer,'gunicorn':GunicornServer,'eventlet':EventletServer,'gevent':GeventServer,'geventSocketIO':GeventSocketIOServer,'rocket':RocketServer,'bjoern':BjoernServer,'auto':AutoServer,}

3.运行Django功能

语法:python manage.py runserver ip:port

pythonmanage.pyrunserver127.0.0.1:8001

4.创建APP

pythonmanage.pystartappcmdb

- migrations 数据修改表结构

- admin Django为我们提供的后台管理

- apps 配置当前app

- models ORM,写指定的类 通过命令可以创建数据库结构

- tests 单元测试

- views 业务代码

示例:表单验证



内容整理

1.创建Django工程
django-adminstartproject工程名

2.创建APP
cd工程名
pythonmanage.pystartappcmdb

3、静态文件
project.settings.py

STATICFILES_Dirs=(
os.path.join(BASE_DIR,"static"),)

4、模板路径

Dirs==>[os.path.join(BASE_DIR,'templates'),]

5、settings中

middlerware
#注释csrf


6、定义路由规则
url.py
"login"-->函数名

7、定义视图函数
app下views.py
deffunc(request):#request.methodGET/POST

#http://127.0.0.1:8009/home?nid=123&name=alex
#request.GET.get('',None)#获取请求发来的而数据

#request.POST.get('',None)


#returnHttpResponse("字符串")
#returnrender(request,"HTML模板的路径")
#returnredirect('/只能填URL')

8、模板渲染
特殊的模板语言

--{{变量名}}
deffunc(request):returnrender(request,"index.html",{'current_user':"alex"})


index.html

<html>
..
<body>
<div>{{current_user}}</div>
</body>

</html>

====>最后生成的字符串

<html>
..
<body>
<div>alex</div>
</body>

</html>
--For循环deffunc(request):returnrender(request,{'current_user':"alex",'user_list':['alex','eric']})


index.html

<html>
..
<body>
<div>{{current_user}}</div>

<ul>
{%forrowinuser_list%}

{%ifrow=="alex"%}
<li>{{row}}</li>
{%endif%}

{%endfor%}
</ul>

</body>

</html>
#####索引#################
deffunc(request):returnrender(request,'eric'],'user_dict':{'k1':'v1','k2':'v2'}})


index.html

<html>
..
<body>
<div>{{current_user}}</div>

<a>{{user_list.1}}</a>
<a>{{user_dict.k1}}</a>
<a>{{user_dict.k2}}</a>

</body>

</html>
######条件

deffunc(request):returnrender(request,"age":18,'k2':'v2'}})


index.html

<html>
..
<body>
<div>{{current_user}}</div>

<a>{{user_list.1}}</a>
<a>{{user_dict.k1}}</a>
<a>{{user_dict.k2}}</a>

{%ifage%}
<a>有年龄</a>
{%ifage>16%}
<a>老男人</a>
{%else%}
<a>小鲜肉</a>
{%endif%}
{%else%}
<a>无年龄</a>
{%endif%}
</body>

</html>

day_18 正则及Django的更多相关文章

  1. HTML实现代码雨源码及效果示例

    这篇文章主要介绍了HTML实现代码雨源码及效果示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. HTML文本属性&amp;颜色控制属性的实现

    这篇文章主要介绍了HTML文本属性&颜色控制属性的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  3. 简洁自适应404页面HTML好看的404源码

    这篇文章主要介绍了简洁自适应404页面HTML好看的404源码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. HTML5适合的情人节礼物有纪念日期功能

    这篇文章主要介绍了HTML5适合的情人节礼物有纪念日期功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. 如何给HTML标签中的文本设置修饰线

    这篇文章主要介绍了如何给HTML标签中的文本设置修饰线,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  6. HTML5调用手机发短信和打电话功能

    这篇文章主要介绍了HTML5调用手机发短信和打电话功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  7. html5简介_动力节点Java学院整理

    这篇文章主要介绍了html5简介,用于指定构建网页的元素,这些元素中的大多数都用于描述网页内容,有兴趣的可以了解一下

  8. HTML利用九宫格原理进行网页布局

    这篇文章主要介绍了HTML利用九宫格原理进行网页布局,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  9. HTML中实现音乐或视频自动播放案例详解

    由于期末大作业我想插入一个背景音乐,实现点开网页就会自动播放音频的效果,今天通过本文给大家分享下我基于HTML实现音乐或视频自动播放功能,代码简单易懂,需要的朋友参考下吧

  10. 使用HTML5加载音频和视频的实现代码

    这篇文章主要介绍了使用HTML5加载音频和视频的实现代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

随机推荐

  1. 法国电话号码的正则表达式

    我正在尝试实施一个正则表达式,允许我检查一个号码是否是一个有效的法国电话号码.一定是这样的:要么:这是我实施的但是错了……

  2. 正则表达式 – perl分裂奇怪的行为

    PSperl是5.18.0问题是量词*允许零空间,你必须使用,这意味着1或更多.请注意,F和O之间的空间正好为零.

  3. 正则表达式 – 正则表达式大于和小于

    我想匹配以下任何一个字符:或=或=.这个似乎不起作用:[/]试试这个:它匹配可选地后跟=,或者只是=自身.

  4. 如何使用正则表达式用空格替换字符之间的短划线

    我想用正则表达式替换出现在带空格的字母之间的短划线.例如,用abcd替换ab-cd以下匹配字符–字符序列,但也替换字符[即ab-cd导致d,而不是abcd,因为我希望]我如何适应以上只能取代–部分?

  5. 正则表达式 – /bb | [^ b] {2} /它是如何工作的?

    有人可以解释一下吗?我在t-shirt上看到了这个:它似乎在说:“成为或不成为”怎么样?我好像没找到’e’?

  6. 正则表达式 – 在Scala中验证电子邮件一行

    在我的代码中添加简单的电子邮件验证,我创建了以下函数:这将传递像bob@testmymail.com这样的电子邮件和bobtestmymail.com之类的失败邮件,但是带有空格字符的邮件会漏掉,就像bob@testmymail也会返回true.我可能在这里很傻……当我测试你的正则表达式并且它正在捕捉简单的电子邮件时,我检查了你的代码并看到你正在使用findFirstIn.我相信这是你的问题.findFirstIn将跳转所有空格,直到它匹配字符串中任何位置的某个序列.我相信在你的情况下,最好使用unapp

  7. 正则表达式对小字符串的暴力

    在测试小字符串时,使用正则表达式会带来性能上的好处,还是会强制它们更快?不会通过检查给定字符串的字符是否在指定范围内比使用正则表达式更快来强制它们吗?

  8. 正则表达式 – 为什么`stoutest`不是有效的正则表达式?

    isthedelimiter,thenthematch-only-onceruleof?PATTERN?

  9. 正则表达式 – 替换..与.在R

    我怎样才能替换..我尝试过类似的东西:但它并不像我希望的那样有效.尝试添加fixed=T.

  10. 正则表达式 – 如何在字符串中的特定位置添加字符?

    我正在使用记事本,并希望使用正则表达式替换在字符串中的特定位置插入一个字符.例如,在每行的第6位插入一个逗号是什么意思?如果要在第六个字符后添加字符,请使用搜索和更换从技术上讲,这将用MatchGroup1替换每行的前6个字符,后跟逗号.

返回
顶部