注册功能(掌握)
接受用户输入用户名,进行合法性校验,拿到合法的用户名
接受用户输入密码,进行合法性校验,拿到合法的密码
将合法的用户名和密码写入文件
注册
封装文件读写功能
分层实现功能(掌握)
面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。
面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么……
基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机械式的思维方式。
当我们写登录功能,我们首先需要输入账号、密码,然后认证两次密码是否相同,然后从数据库中读取密码验证用户密码输入是否正确,然后输入验证码……之后,我们就能够实现登录功能。这样把登录功能问题流程化,进而是解决问题的思路非常清晰。
56面向过程编程-流水线.jpg
优点:复杂的问题流程化,进而简单化。
生产汽水瓶的流水线,没办法生产特斯拉。流水线下一个阶段的输入与上一个阶段的输出是有关联的。因此他的扩展性极差。
缺点:扩展性差。
注册功能(掌握)
接受用户输入用户名,进行合法性校验,拿到合法的用户名
def check_username():
username = input('username>>>').strip()
if username.isalpha():
return username
else:
print('用户名必须为字母,傻叉')
接受用户输入密码,进行合法性校验,拿到合法的密码
def check_pwd():
while True:
pwd = input('password>>>').strip()
if len(pwd) < 5:
print('密码长度至少五位')
continue
re_pwd = input('re_password>>>').strip()
if pwd == re_pwd:
return pwd
else:
print('两次输入密码不一致')
将合法的用户名和密码写入文件
def insert(username, pwd, path='57.txt'):
with open(path, 'a', encoding='utf8') as fa:
fa.write(f'{username}:{pwd}\n')
注册
def register():
username = check_username()
pwd = check_pwd(www.feishenbo.cn)
insert(username, pwd)
print(f'{username}注册成功')
register()
username>>>nick
password>>>12345
re_password>>>12345
nick注册成功
如果现在我们需要校验用户的年龄,因此我们需要增加一个check_age()方法,并且其他有牵连的地方都需要修改,因此它的扩展性极差。
封装文件读写功能
# def register():
# while True:
# username = input('username>>>').strip()
# # 检测用户是否重复,如果重复则重新输入
# with open('db.txt', 'r', encoding='utf8') as fr:
# for line in fr:
# info = line.strip(www.dfgjpt.com'\n').split(':')
# if username == info[0]:
# print('用户名已经存在')
# break
# else:
# # 用户名不存在
# # 跳出循环,不用重复输入用户名字
# res =
# def tell_info():
# username = input('username>>>').strip()
# with open('db.txt', 'r', encoding='utf8') as fr:
# for line in fr:
# info = line.strip('\n').split(':')
# if username == info[0]:
# return info
数据处理层
def select(username):
with open('db.txt', 'r', encoding='utf8') as fr:
for line in fr:
info = line.strip('\n'www.baihuidengLu.com).split(':')
if username == info[0]:
return info
def tell_info():
username = input('username>>>').strip()
info = select(username)
print(info)
用户功能层
def register():
while True:
username = input('username>>>').strip()
# 检测用户是否重复,如果重复则重新输入
res = select(username)
if res:
@RequestMapping(yunshenggw.cn/"/loadOrderList")
@ResponseBody
public List<Order> loadOrderList(String uid){
//模拟订单数据
Order o1 = new Order();
o1.setId("111");
o1.setTotal(333.33);
o1.setDate("2019-4-29");
Order o2 = new Order(www.baihuiyulep.cn );
o2.setId("222");
o2.setTotal(444.44);
o2.setDate("2019-5-29");
Order o3 = new Order();
o3.setId("333");
o3.setTotal(555.55);
o3.setDate("2019-6-29");
List<Order> list = new ArrayList<>();
list.add(o1);
list.add(o2);
list.add(o3);
return list;
}
在另一个项目中做一个向订单系统发送一个ajax请求, 获取订单集合. 该项目使用Tomcat插件发布在9090端口.
//index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/ www.yunyougj.cn javascript" src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript">
function sendAjax() {
$.post("http://localhost:7070/order/loadOrderList", "uid=1234", function (data) {
alert(data);
});
}
</script>
</head>
<body>
<a href="javascript:sendAjax()">sendAjax</a>
</body>
</html>
面向过程编程
最新推荐文章于 2023-06-29 22:06:28 发布