面向过程编程

  注册功能(掌握)
  
  接受用户输入用户名,进行合法性校验,拿到合法的用户名
  
  接受用户输入密码,进行合法性校验,拿到合法的密码
  
  将合法的用户名和密码写入文件
  
  注册
  
  封装文件读写功能
  
  分层实现功能(掌握)
  
  面向过程编程是解决问题的一种思想,相当于武林门派,武林门派之间没有好坏之分,因此它与我们之后学习的面向对象编程其实没有好坏之分。
  
  面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么、后干什么、再干什么、然后干什么……
  
  基于该思想编写程序就好比在设计一条流水线,面向对称编程其实是一种机械式的思维方式。
  
  当我们写登录功能,我们首先需要输入账号、密码,然后认证两次密码是否相同,然后从数据库中读取密码验证用户密码输入是否正确,然后输入验证码……之后,我们就能够实现登录功能。这样把登录功能问题流程化,进而是解决问题的思路非常清晰。
  
  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>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值