我的python学习--第九天

一、复习

1、业务逻辑图

2、注意点

(1)、任何页面都必须验证是否登录,没有登录则跳转到登录界面(通过session判断)

(2)、普通用户与管理员权限之分

1、添加用户只能由管理员操作

2、删除用户也只能由管理员操作

3、更新用户中,状态和角色由管理员修改,普通用户只能修改指定的信息

4、查看所有用户列表只能管理员操作,普通用户只能查看自己的信息

3、jquery ajax - serialize()方法

示例

<html>
<head>
<script src="/jquery/jquery.js"></script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    $("div").text($("form").serialize());                    <!-- 获取表单的值并添加到<div> -->
  });
});
</script>
</head>
<body>
<form action="">
First name: <input type="text" name="FirstName" value="Bill" /><br />
Last name: <input type="text" name="LastName" value="Gates" /><br />
</form>

<button>序列化表单值</button>
<div></div>
</body>
</html>

输出结果

定义和用法

serialize()方法通过序列化表单值,创建 URL 编码文本字符串。

您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素本身。

序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。

语法

$(selector).serialize()

详细说明

.serialize()方法创建以标准URL编码表示的文本字符串。它的操作对象是代表表单元素集合的 jQuery 对象。

参考地址

http://www.w3school.com.cn/jquery/ajax_serialize.asp



二、jQuery的基本操作三步走

1:选择器 ---- 找到需要操作的元素

2:操作 ---- DOM元素进行增删改查

2.1:操作html文档的内容 ---- 常用元素 table form div等

2.2:操作html元素的属性 ---- 常用属性

2.3:操作html元素的样式 ---- css(其实也属于属性)

3:事件 ---- 什么情况下触发jQuery操作,ajax等

jQuery的基础语法:$(selector).action()

  • 美元符号定义jQuery
  • 选择符(selector)为查询HTML元素
  • jQuery的action()执行对元素的操作

常用的选择器

1.$(‘p‘)        # 选取<p>元素

2.$(‘#test‘)      # 选取所有id为test的元素

3.$(‘.test‘)      # 选取所有class为test的元素

4.$(‘p#test‘)     # 选取所有id为test的<p>元素

5.$(‘p,#test‘)    # 选取所有id为test的元素和<p>元素

常用的动作

1. $(selector).html(value)        # 获取或设置html标签值

2. $(selector).val(value)         # 获取或设置表单标签值

3. $(selector).attr(value)        # 获取或设置属性标签值

4. $(selector).css(value)         # 获取或设置标签样式值

常用的事件方法

示例

<!DOCTYPE html>
<html>
<head>
<script src="/jquery/jquery-1.11.1.min.js"></script>
<script>
$(document).ready(function(){
  $("#btn1").click(function(){
    $("#test1").text("Hello world!");                  <!-- 修改id为test1的正文 -->
  });
  $("#btn2").click(function(){
    $("#test2").html("<b>Hello world!</b>");           <!-- 修改id为test2的html值 -->
  });
  $("#btn3").click(function(){
    $("#test3").val("Dolly Duck");                     <!-- 修改id为test3的表单的值 -->
  });
});
</script>
</head>

<body>
<p id="test1">这是段落。</p>
<p id="test2">这是另一个段落。</p>
<p>Input field: <input type="text" id="test3" value="Mickey Mouse"></p>
<button id="btn1">设置文本</button>
<button id="btn2">设置 HTML</button>
<button id="btn3">设置值</button>
</body>
</html>

运行结果

参考地址

http://www.w3school.com.cn/jquery/jquery_selectors.asp

http://www.w3school.com.cn/jquery/jquery_events.asp

总结

1.id选择器和class选择器是最常用的两种选择器
2.id选择器的id在页面是唯一的标示。适用于某一个特定元素的定义
3.class选择器,是同一类元素共用属性,适用于相同类型元素批量的定义



jQuery之ajax基础讲解 ---- 获取用户信息列表

逻辑端

#coding:utf-8                                                                                                                                 

from flask import Flask,request,render_template
import json

app = Flask(__name__)

@app.route(‘/‘)
@app.route(‘/index‘)
def index():
    return render_template(‘ajax.html‘)

@app.route(‘/list‘)
def list():
    user = {‘id‘:1,‘name‘:‘wd‘,‘age‘:18}
    return json.dumps({‘code‘:0,‘result‘:user})

if __name__ == ‘__main__‘:
    app.run(host=‘0.0.0.0‘, port=9092,debug=True)

前端

<html>
<body>
<table border=‘1‘>
    <thead>
        <tr>
	    <td>用户名</td>
	    <td>年龄</td>
	    <td>更新</td>
        </tr>
    </thead>
    
    <tbody>
    </tbody>
</table>

<script src=‘http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js‘></script>
<script>
<!-- getJSON(请求逻辑端的URL,接受逻辑结构的函数(回调函数)) -->
$.getJSON(‘/list‘,function(data){             
    if (data[‘code‘] == 0){
	var str = ‘‘
	data = data[‘result‘]
<!-- 构建html内容 -->
	str =‘<tr>‘+
	    ‘<td>‘+data[‘name‘]+‘</td>‘+
	    ‘<td>‘+data[‘age‘]+‘</td>‘+
	    ‘<td>‘+
	    ‘<button id="updatabtn" data-id="‘+data[‘id‘]+‘">更新</button>‘+
	    ‘</td>‘+‘</tr>‘
<!-- 设置<tbody>的html标签值 -->
	$(‘tbody‘).html(str)
    }else{
	$(‘#errmsg‘).html(‘fail‘)
    }
})
</script>
</body>
</html>

运行结果

说明

现在有两个route

1:/ 或 /index——仅仅返回空的表头没有内容

2:/list--返回真正的数据(json格式的数据)

{"code": 0, "result": {"age": "18", "id": 1, "name": "wd"}}

3:通过ajax拿到数据后渲染index的表格,index负责返回html页面,list负责把逻辑数据拿到并渲染index的html页面



jQuery之ajax基础讲解 ---- 表单处理

逻辑端

#coding:utf-8

from flask import Flask,request,render_template
import json

app = Flask(__name__)

@app.route(‘/‘)
@app.route(‘/index‘)
def index():
    return render_template(‘ajax.html‘)

@app.route(‘/add‘,methods=[‘POST‘])
def add():
    data = dict((k,v[0]) for k,v in dict(request.form).items())
    return json.dumps({‘code‘:‘0‘,‘result‘:data})

if __name__ == ‘__main__‘:
    app.run(host=‘0.0.0.0‘, port=9092,debug=True)

前端

<html>
<body>
<form id=‘loginForm‘>
    <input id=‘name‘ type="text" name="name" placeholder="username">
    <input id=‘password‘ type="password" name="password" placeholder="password">
    <input id=‘loginbtn‘ type="submit" value="登录">
</form>

<script src=‘http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js‘></script>
<script>
$(‘#loginbtn‘).click(function(){
<!-- 获取前端的参数 -->
    var str = $(‘#loginForm‘).serialize()
<!-- post(逻辑端URL,传给逻辑端的参数,回调函数) -->
<!-- str通过post方法传给‘/add‘,回调函数从逻辑端获取数据 -->
    $.post(‘/add‘,str,function(data){
        data=JSON.parse(data)
        if (data[‘code‘]==0){
            alert(data[‘result‘][‘name‘])
        }else{
            $(‘errmsg‘).html(data[‘errmsg‘])
        }
    })
    return false
})
</script>
</body>
</html>

运行结果



扒取页面方法

总体思路

1.将源文件中引用的静态文件全部按照源站的路径创建下载

2.有选择的拷贝代码

3.把自己的业务逻辑替换进来

时间: 2024-10-20 07:40:51

我的python学习--第九天的相关文章

据廖雪峰python3教程----python学习第九天

递归函数 ------- 在函数内部可以调用自身本身的函数 定义一个计算阶乘的函数fact(n): fact(n) = n!       = 1 x 2 x 3 x ... x (n-1) x n      = (n-1)! x n      = fact(n-1) x n 函数可以写为: >>> def fact(n):           if n==1:               return 1      return n*fact(n-1) >>> fact

python学习第九天

paramiko模块 ssh 密钥连接连接 import paramiko private_key =pramiko.RSAKey.from_private_key_file("私钥路径") ssh =paramiko.SShClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname=",port=",username=",pkey=priv

2018-11-26 python学习第九天

x='上' #unicode的二进制------编码encode------->gbk格式的二进制res=x.encode('gbk') res=x.encode('utf-8') print(res,type(res)) #unicode的二进制<------解码decode-------gbk格式的二进制m=res.decode('gbk')print(m) ''' 什么是文件文件是操作系统为应用程序或者用户提供一种操作硬盘的虚拟单位强调:文件是操作系统提供的虚拟单位应用程序或者用户对文件

python学习:程序控制结构·作业20141219

Python学习:程序控制结构 20141219 编程环境: windows 7 x64 python 2.7.6 题目: 1 编写程序,完成下列题目(1分) 题目内容: 如果列出10以内自然数中3或5的倍数,则包括3,5,6,9.那么这些数字的和为23.要求计算得出任意正整数n以内中3或5的倍数的自然数之和. 输入格式: 一个正整数n. 输出格式: n以内中3或5的倍数的自然数之和. 输入样例: 10 输出样例: 23 时间限制:500ms内存限制:32000kb n = int(raw_in

python学习第二天

python学习的第二天就是个灾难啊,这天被打击了,自己写的作业被否认了,不说了,写博客还是个好习惯的,要坚持下去,就不知道能坚持到什么时候.呵呵!!! 这天教的知识和第一天的知识相差不大,区别在于比第一天讲的更细了(我们是两个老师教的,风格是不一样的),这次也写那些比较细的知识点. python的简介 (1)你的程序一定要有个主文件. (2)对于python,一切事物都是对象,对象基于类创建.#似懂非懂,不过有那么点似懂. 知识点 #__divmod__ 会把两个数字相除的商和余数以元组的方式

[Python 学习] 二、在Linux平台上使用Python

这一节,主要介绍在Linux平台上如何使用Python 1. Python安装. 现在大部分的发行版本都是自带Python的,所以可以不用安装.如果要安装的话,可以使用对应的系统安装指令. Fedora系统:先以root登入,运行 yum install python Ubuntu系统:在root组的用户, 运行 sudo apt-get install python 2. 使用的Python的脚本 Linux是一个以文件为单位的系统,那么我们使用的Python是哪一个文件呢? 这个可以通过指令

python学习之最简单的用户注册及登录验证小程序

文章都是从我的个人博客上粘贴过来的哦,更多内容请点击 http://www.iwangzheng.com 正如很多同学所知道的,楼主开始学习python了,前进的道路曲曲折折,有荆棘也有陷阱,从最简单的小程序写起,每天练习,将python进行到底. 有一点比较别扭的就是python的换行之后空四个空格,ruby都是两个,并且python在方法和循环语句的第一句都要加冒号 mysql> show create table user; mysql> alter table user add sal

python学习--创建模块

昨天做了python客户端和服务器端通信,并把接收到的信息写到数据库,因为对数据库进行操作是个经常调用的行为,所以我想把调用数据库的操作写成一个module来给其它python程序调用,所以将昨天的服务器端程序拆分为两个文件: 1.主程序python.py #!/usr/bin/env python import socket import json import connmysql s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,0) h

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho