一. JS正则表达式
test -判断字符串是否符合规定的正则表达式
exec -获取匹配的数据
rep = = /\d+/;
rep.test("fdsajlk123");//返回true
rep.exec("fsajk456jfsal12");//返回["456"]
var rep=/\bjava\w*\b/g;
rep.exec(str); //迭代获取str中的匹配值 最后一次返回null
var rep=/\bjava(\w*)\b/g; 分组
rep.exec(str); //迭代获取str中的匹配值,每次得到两个值 如javascript 将获得["javascript","script"];最后一次返回null
- /.../ 用于定义正则表达式
- /.../g 表示全局匹配
- /.../i 表示不区分大小写
- /.../m 表示多行匹配JS正则匹配时本身就是支持多行,此处多行匹配只是影响正则表达式^和$,m模式也会使用^$来匹配换行的内容) 12345
var
pattern = /^Java\w*/gm;
var
text =
"JavaScript is more fun than \nJavaEE or JavaBeans!"
;
result = pattern.exec(text)
result = pattern.exec(text)
result = pattern.exec(text)
注:定义正则表达式也可以 reg= new RegExp()
-登录注册验证
默认事件先执行:
pass;
<a> 阻止默认时间发生 return false;
<form>
<input type = "text"/>
<input type = "password"/>
<input type = 'submit'/>
</form>
$(":submit").click(function(){
$(':text,:password').each(function(){
...
return false;
})
return false;
})
input, checkbox
=================验证=====================
前端:JS验证
各种验证
后端:python实现
业务处理
二. 组件
BootStrap //后台 前台都可使用
-css
-js
学习Bootstrap规则
1.响应式布局@media
2.图标 字体@font-face
3. 如果要是自己的style属性生效,不论其位置在别人style之上之下,只需在style中添加!import
jQueryUI //后台使用
-css
-js
学习jQueryUI规则
EasyUI
-css
-js
学习EasyUI规则
===============Ajax操作============
三. web框架
Model View Controller
数据库 模板 业务处理
MVC
MTV
Model Template View
数据库 模板 业务处理
===============web框架 MTV\MVC===============
四. Django
pip3 install django
添加环境变量
django-admn startproject mysite
#创建Django工程
mysite
-mysite #对整个程序进行配置
-init
-settings #配置文件
-url #URL对应关系
-wsgi #遵循WSGI规范,一般用uwsgi+nginx就可以让Django跑起来
-manage.py #管理Django程序:ORM关系对象映射
- python manage.py 执行
- python manage.py startapp XX创建app
- python manage.py makemigrations
- python manage.py migrate 自动生成表
#运行
执行 python manage.py runserver 127.0.0.1:8001
chouti
-chouti 配置
-主站app
-后台管理app
# 创建app
python manage.py startapp cmdb
python manage.py startapp openstack
#app结构
migrations 数据修改表结构的记录
admin Django为我们提供的后台管理
apps 配置当前的app
Model Orm,写指定的类,通过命令可以创建数据库结构
tests 单元测试
views 业务逻辑代码
在Django项目下新建一个App,创建模型修改App下models.py文件后,运行python .\manage.py migrate命令后,出现一下报错:
question = models.ForeignKey(Question) TypeError: init() missing 1 required positional argument: ‘on_delete’
解决办法: 在question = models.ForeignKey(Question)后面添加参数“on_delete=models.CASCADE”,变为question = models.ForeignKey(Question,on_delete=models.CASCADE),即可解决。
on_delete=models.CASCADE是级联删除的意思,意思就是说当你更新或删除主键表,那外键表也会跟随一起更新或删除。
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 配置静态目录
static
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )<link rel="stylesheet" href="/static/commons.css" />
Django中html的for循环
{% for row in user_list %} { { row.username }} { { row.gender }} { { row.email }} {% endfor %} views.py中
return render(request,'home.html',{'user_list':USER_LIST})