day18 js 正则,UI框架,Django helloworld 以及完整工作流程

只匹配数字:

所以JS 正则的使用方式:
1 写一个满足需求的js正则匹配式
2 使用test来验证是否符合
那么如果我们想获取里面的数据该怎么办呢?
exec:
默认只拿第一个
使用分组:
全局匹配:
注意:会从开始一直匹配,每次匹配一个,直到匹配完,会返回一个null 然后再匹配的话会从头重新开始
全局使用分组:
每次返回两个值,第一个为匹配的,第二个为去除正则后的数据
复习下正则:
这里再声明一下,使用自定义动作的时候一定要加上return 才能取消自带的动作
对于checkbox 来说,默认事件先执行,然后才执行自定的事件
完整验证过程:
学习框架:
已知的有
1 jQuery UI
2 Bootstrap
BootStrap 可适用于前端展示及后端管理的都可以
响应式布局效果:
在修改别人的插件的时候,要更改东西的时候就使用 important 表名最重要的!!! 这样就不关心前后顺序了
各种轮播图等、 都有插件
所有web框架的本质:
python 3 中三种方式转换为字节:
判断客户端的请求路径
使用字典形式,省去做if 判断:
从文件中返回数据:
分开写:
所谓各种名词 就是下面的框架:
开始 Django
1 安装
2 创建工程
3 运行
访问:
添加一个自定义的url
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse
def home(request):
return HttpResponse('<h1>Frist</h1>')
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^home/', home),
]
写一个时间更新的页面:
from django.conf.urls import url
from django.contrib import admin
from django.shortcuts import HttpResponse
def time(request):
import time
info = time.ctime()
return HttpResponse(['<h1>时间服务器</h1>',info])
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^time/', time),
]
创建一个网站的多个app用来处理不同的事情:
实践:
然后把逻辑代码放到新的目录里:
修改urls:
访问:
app目录的详细解释:
一行实现读取文件:
文件是通过配置里的目录来配置的,不然找不到文件的
实践:
1 编写登陆逻辑函数
from django.shortcuts import HttpResponse
from django.shortcuts import render
def login(request):
return render(request,'login.html')
def time(request):
import time
info = time.ctime()
return HttpResponse(['<h1>时间服务器</h1>',info])
2 编写登陆页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
label{
width: 80px;
text-align: right;
display: inline-block;
}
</style>
</head>
<body>
<form action="/login" method="post">
<p>
<label for="username">用户名:</label>
<input id="username" type="text" />
</p>
<p>
<label for="password">密码:</label>
<input id="password" type="text" />
<input type="submit" value="提交" />
</p>
</form>
</body>
</html>
3添加路由
4 检查配置
5 启动并测试
静态文件配置:
创建Django app 后首先需要操作:
使用静态文件:
2 修改配置文件,添加静态文件目录
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR,'static'),
)
3 添加静态文件
4 修改html中的引用
5 测试
注释掉跨站 csrf:
判断用户是GET 还是POST
获取用户提交的信息:
程序里写:
完整的基本的用户名密码认证:
实践:
1 修改html 增加name 在POST 提交的时候才能分辨是什么内容,添加Django 特有的替换字符串的变量
action 的url 要和urls 里配置的一样,要么都有/ 要么都没有,不然会报错。
2 程序添加判断请求方式,获取输入的数据,并判断是否正确
3 实验:
在html 页面中使用for 循环来生成网页信息:
获取数据并添加到当前页面:
HTML页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body style="margin: 0">
<div style="height: 48px;background-color: #dddddd"></div>
<div>
<form action="/home" method="post">
<input type="text" name="username" placeholder="用户名" />
<input type="text" name="email" placeholder="邮箱"/>
<input type="text" name="gender" placeholder="性别"/>
<input type="submit" value="添加" />
</form>
</div>
<div>
<table>
{% for row in user_list %}
<tr>
<td>{{ row.username }}</td>
<td>{{ row.gender }}</td>
<td>{{ row.email }}</td>
</tr>
{% endfor %}
</table>
</div>
</body>
</html>
2 添加路由并添加处理的函数
urls
业务逻辑函数
USER_LIST =[
{'username':'alex','email':'abc@12.com','gender':'男'},
{'username':'alex','email':'abc@12.com','gender':'男'}
]
def home(request):
if request.method == 'POST':
#在request中获取用户提交的数据
u = request.POST.get('username')
e = request.POST.get('email')
g = request.POST.get('gender')
temp = {'username':u,'email':e,'gender':g}
USER_LIST.append(temp)
return render(request,'home.html',{'user_list':USER_LIST})
3 启动并测试
重新打开页面也还有数据,但是重启程序就没有了,所以需要把数据写到存储中,例如写入redis 中,就可以持久化了
经过以上一些实践,我们大概了解了Djanago 的工作方式,下面还Django的处理流程及部件组成图:
回顾一下以上的内容,做一个整理:
Django的程序完成开发流程:
模板语言的语法:
if 也可以嵌套,直接在里面写,但是要记得写上结尾符
EOF
day18 js 正则,UI框架,Django helloworld 以及完整工作流程的更多相关文章
- nodejs的Express框架源码分析、工作流程分析
nodejs的Express框架源码分析.工作流程分析 1.Express的编写流程 2.Express关键api的使用及其作用分析 app.use(middleware); connect pack ...
- WEB前端JS与UI框架
前端Js框架汇总 概述: 有些日子没有正襟危坐写博客了,互联网飞速发展的时代,技术更新迭代的速度也在加快.看着Java.Js.Swift在各领域心花路放,也是煞是羡慕.寻了寻.net的消息,也是振奋人 ...
- js客户端UI框架
Best jQuery UI http://b-jui.com/ jQuery EasyUI http://www.jeasyui.com/ bootstrap学习网: http://www.runo ...
- scrapy 基础组件专题(一):scrapy框架中各组件的工作流程
Scrapy 使用了 Twisted 异步非阻塞网络库来处理网络通讯,整体架构大致如下(绿线是数据流向): Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事 ...
- Django的JWT机制工作流程
https://blog.csdn.net/bin_1022/article/details/81278513 django-rest-framework-jwt token 怎么解码得到用户名? d ...
- 移动端常用UI框架
作为一个前端人员来说,总结几款相对来说不错的用于移动端开发的UI框架是非常必要的,以下几种移动端UI框架就能基本满足工作中开发需要,根据项目需求,选用合适的框架搭建项目,更能容易提高开发效率. 一.M ...
- Android酷炫实用的开源框架(UI框架)
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- Android酷炫实用的开源框架(UI框架) 转
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- 黄聪:Android酷炫实用的开源框架(UI框架)(转)
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
随机推荐
- Django之model基础(查询补充)
学习完简单的单表查询外,是远远不够的,今天我们对查询表记录做一个补充,接下来来看看基于对象的跨表查询.基于双下划线的跨表查询,聚合查询和分组查询,F查询与Q查询. 比如我们有如下一张表,在model中 ...
- php 出现空格,换行原因
1.空格:转换成utf-8无bom格式 2.空格:<?php ?>标签结尾有中文,英文空格 3.换行,一个文件中有多个<?php ?>标签,标签间隔中有换行符合
- font:inherit
font:inherit 字体的设置 设置所有元素的字体保持一致: 所有元素:*{font:inherit;} /* IE8+ */ body体用percent:body{font:100%/1 sa ...
- 使用adbWireless无线调试Android真机设备[转]
开发Android的朋友都知道,真机调试需要把手机与PC相连,然后把应用部署到真机上进行安装和调试.长长的USB线显得很麻烦,而且如果需要USB接口与其他设备连接的话显得很不方便.今天介绍一种不通过U ...
- ubuntu下JDK安装(更新旧版本JAVA)
1.sudo apt-get install openjdk-8-jre openjdk-8-jdk 2.默认会安装在 路径为 /usr/lib/jvm/java-7-openjdk-amd64 下面 ...
- COGS 1453. [USACO NOV]空牛栏
★★ 输入文件:empty.in 输出文件:empty.out 简单对比时间限制:1 s 内存限制:64 MB [题目描述] FJ建的新牛棚里有N(2<=N<=3,000, ...
- java Vamei快速教程11 对象引用
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们之前一直在使用“对象”这个概念,但没有探讨对象在内存中的具体存储方式.这方面的 ...
- VM安装centOS6.9
1.首先要下载一个centos的iso镜像,用VMware创建一个空白硬盘. 2.创建完毕再设置里面挂载iso的centos系统文件. 3.进入到这个页面: 说明: ①install or upgra ...
- 最近面试前端岗位,汇总了一下前端面试题(JS+CSS)
JavaScript 运行机制 1. 单线程(用途决定,需要与用户互动以及操作DOM) 2. 分同步任务(主线程)与异步任务(任务队列),只有任务队列通知主线程某个任务可以执行了,该 任务才会进入主线 ...
- Luogu [P1248] 加工生产调度
题目链接 这个题可以贪心 我们首先想:对于所有产品,我们大致可以将其分为三类: ①.在A车间的时间要比B车间长. ②.两者一样. ③.在B车间的时间要比A车间长. 对于这三大类,怎么安排顺序? 可以看 ...