Python 学习第十八天 js 正则及其它前端知识

一,js 正则表达式

  test 判断制度串是否符合规定的正则

  (1)定义正则表达式匹配规则

          js 中定义正则表达式为rep=/\d+/,两个//之间为正则模式

  (2)rep.test("assdsda89sdasdas") ,返回true,一般test 方法为只要字符串中的包含正则模式即返回true

  (3)rep=/^\d+$/完全匹配正则模式

    exec 获取匹配的数据

  1, (1)rep=/\d+/;

    (2)str="wangshen_67_houyanfa_20"

    (3)rep.exec(str) 返回["67"]

  2,   js exec 分组匹配

text="JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava(\w*)\b/;                           
pattern.exec(text)                              #返回 ["JavaScript", "Script"]

     3,js exec 全局匹配

text="JavaScript is more fun than Java or JavaBeans!"
var pattern = /\bJava\w*\b/g;
pattern.exec(text)
# ["JavaScript"]
pattern.exec(text)
# ["Java"]
pattern.exec(text)
# ["JavaBeans"]
pattern.exec(text)
# null
pattern.exec(text)        #加g表示全局匹配,匹配一个输出一个,当全部匹配完成时输出null 再匹配从头开始

   4,js exec 全局加分组匹配

JavaScript is more fun than Java or JavaBeans!
var pattern = /\bJava(\w*)\b/g;
# ["JavaScript",'Script']
# ["Java", ""]
# ["JavaBeans", "Beans"]
# null                                              #分组匹配会对匹配到的结果再进行一次匹配
		 

 5,其它匹配模式

  (1)/.../i 不区分大小写

  (2)/.../m 表示多行匹配,js 中默认支持多行匹配,也就是单独加g也可以完成多行匹配,但是在匹配模式中^$,匹配多行时需要m参数

       例如

text="JavaScript is more fun than \n  Java or JavaBeans!"
var pattern = /\bJava(\w*)\b/g;
pattern.exec(text)                               #返回["JavaScript",'Script'] 也可以匹配成功,表示默认支持多行
text="JavaScript is more fun than \n  Java or JavaBeans!"
var pattern = /^Java(\w*)/g;                     #匹配以Java开头的字符串,且后面为任意字符
pattern.exec(text)                               #返回["JavaScript",'Script'] 
pattern.exec(text)                               #返回null 

var pattern = /^Java(\w*)/gm; 
pattern.exec(text)                                #返回["JavaScript",'Script'] 
pattern.exec(text)                                #返回["Java",""]

 6,a标签绑定事件

<a onclick='return Func();'>asdf</a>
function Func(){
    return false:                                  #利用DOM绑定方式增加a标签事件
}

<a>asdf</a>
$('a').click(function(){return false;})    #利用jquery方式绑定事件

 7,form 表单提交事件

<form>		
	<input type='text' />
	<input type='password' />
	<input type='submit' />		
</form>
   
$(':submit').click(function(){		
    $(':text,:password').each(function(){
				...
		return false;
	})
	return false;
}) 

 8,标签定义事件执行顺序

  像a input submit 标签一般默认都为自定义事件先执行,checkbox 默认事件先执行

 9,css设置重要性

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

 二,django

 1,django 设置静态文件路径

  在setting.py中最下面添加添加以下代码 

STATIC_URL = '/static/'
STATICFILES_DIRS = { os.path.join(BASE_DIR,'static'), }

 2,创建完django project 后的操作

(1),配置模板的路径

TEMPLATES = [
				{
					'BACKEND': 'django.template.backends.django.DjangoTemplates',
					'DIRS': [os.path.join(BASE_DIR, 'templates')],
					'APP_DIRS': True,
					'OPTIONS': {
						'context_processors': [
							'django.template.context_processors.debug',
							'django.template.context_processors.request',
							'django.contrib.auth.context_processors.auth',
							'django.contrib.messages.context_processors.messages',
						],
					},
				},
			]

(2),配置静态文件的路径

#在 setting.py 中添加
STATICFILES_DIRS = (
	os.path.join(BASE_DIR, 'static'),
)
#在html中添加
<link rel="stylesheet" href="/static/commons.css" />
		

 3,view.py获取用户提交的数据

if request.method == "post":

    user = request.POST.get(‘user',None)
    pwd = request.POST.get('pwd',None)                #获取用户提交的数据中 即使不存在相应的值也不会报错
    
    user = request.POST['user']
    pwd = request.POST['pwd']                         #获取用户提交的数据。如果不存在就会报错

 4,view.py中函数处理重定向到其它网址

from django.shortcuts import redirect    #导入模块

return redirect('http://www.baidu.com')   #在view函数中添加,重定向到其它网站
 
from django.shortcuts import render
return render(request,'login.html') #找到本地的模板,打开html文件

 5,render 返回错误信息

  return render(request,'login.html',{'error_msg':error_msg})

 6,django 处理html模板for 循环与取某一个值

{% for row in user_list %}
    <tr>    
        <td>{{ row.username }}</td>
        <td>{{ row.gender }}</td>
        <td>{{ row.email}}</td>
   </tr>
{ %endfor %}                                          #部分html代码

def home(request):
    return render(request,'home.html',{'user_list': USER_LIST}}     #部分views.py代码

 7,css input 框中提示字设置

<input type="text" name="username" placeholder="用户名" />

 8,django 已get方式获取值,需要在url中增加值
     例如:

http://127.0.0.1:8009/home?nid=123&name=jack  #get方式请求

#views函数中
print(request.GET) 
#返回
<QueryDict:{'name':[alex],'nid':['123']}>      
print(request.GET.get('nid'))
#返回
123       

 

posted @ 2016-12-07 19:17  niu_x  阅读(217)  评论(0编辑  收藏  举报