-
Web全栈
2018-01-04 00:53:32第二阶段 Web基础 HTML、CSS、JavaScript、jQuery 第三阶段 Web高级 HTML5、CSS3、JavaScript高级、工程化 第四阶段 Web框架 Bootstrap、Vue.js、APICloud 第五阶段 Node.js 安装软件 极域电子教室、飞鸽传书...教学框架
- 第一阶段 UI
PS、AI、Axure、Markman - 第二阶段 Web基础
HTML、CSS、JavaScript、jQuery - 第三阶段 Web高级
HTML5、CSS3、JavaScript高级、工程化 - 第四阶段 Web框架
Bootstrap、Vue.js、APICloud - 第五阶段 Node.js
安装软件
- 极域电子教室、飞鸽传书(教学软件)
- 有道云笔记(创建.md文件)
- XMind(绘制思维导图)
- FScapture(截图工具)
- MarkMan(图片标注工具)
- PS、AI、SVN
首先是了解Web全栈的课程安排,安装必备的软件,然后才正式开始学习。
之前就了解过UI设计、Web前端的相关内容,其实我个人是更偏向于UI的,但总觉得不可避免要学习代码,而且在将来的工作中,必然要会代码,所以希望自己能够深入学习。 - 第一阶段 UI
-
Web全栈教程
2019-08-10 04:02:10Web 全栈教程 -
web全栈
2018-01-07 22:04:26Openstack 各个组件 ... ...NoSQL,泛指非关系型的数据库,大数据背景,非关系型数据库速度更...Web性能优化,可简单理解为加载速度和页面渲染性能,需要深入了解网络性能和http协议,方法举例:压缩源码图片,合并Openstack
各个组件
Html正规样式
Nosql数据库
NoSQL,泛指非关系型的数据库,大数据背景,非关系型数据库速度更快
Node.js
一专多长,关注商业目标,关注用户体验
结构html 表现css 行为js
Web性能优化,可简单理解为加载速度和页面渲染性能,需要深入了解网络性能和http协议,方法举例:压缩源码图片,合并静态资源,使用CDN(公开库使用第三方体提供的静态资源地址),css在页面头,js在页面底部。
静态资源放在非主域名下,子域名指向同一ip。提高对服务器的并发连接数限制。
Bigpipe ,一种非阻塞式模型。客户端服务器交互,请求未结束,可以先进行渲染。分块船速编码
Gzip
Github
Nignx和apache处理高并发请求
DDoS分布式拒绝服务攻击,不断连接服务器,超过最大连接数。有对数据库操作的页面更容易受到攻击。
硬技术,软技术(积累,沉淀,分享)。声望(答应就完成)
数据库缓存,mysql可以开启查询缓存开关。
先后顺序:内存缓存,文件缓存,数据库
V8引擎,直接吧js代码编译成机器码。传统引擎需要把js传成字节码,然后再转成机器码。
脚本语言,无需编译,可在环境直接运行。
部署反向代理,服务器请求转发,跨域问题。
时间管理四象限。笔纸头脑风暴
-
web 全栈
2015-08-19 09:22:16 -
小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 5)
2020-04-01 16:11:36大家好,我叫亓官劼(qí guān jié ),这个《小白都能看懂的实战教程 手把手教你Python Web全栈开发》是一个零基础的实战教程,手把手带你开发一套系统,带你了解Python web全栈开发,目前正在连续更新中,如果...大家好,我叫亓官劼(qí guān jié ),这个《小白都能看懂的实战教程 手把手教你Python Web全栈开发》是一个零基础的实战教程,手把手带你开发一套系统,带你了解Python web全栈开发,目前正在连续更新中,如果喜欢的话可以点赞关注博主,后面会持续更新。
博主博客文章内容导航(实时更新)
更多优质文章推荐:- 收藏!最详细的Python全栈开发指南 看完这篇你还不会Python全栈开发 你来打我!!!
- 一本教你如何在前端实现富文本编辑器
- 小白都能看得懂的教程 一本教你如何在前端实现markdown编辑器
- Flask学习(基本语法)
- 一文教会你Bootstrap,让你也可以快速建站
- 一文教你如何白嫖JetBrains全家桶(IDEA/PtChram/CLion)免费正版
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 1)
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 2)
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 3)
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 4)
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 5)
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 6)
- 小白都能看懂的实战教程 手把手教你Python Web全栈开发 (DAY 7)
本项目所有源码在GitHub开源,GitHub地址为:OnlineForumPlatform有需要源码可以前去查看,喜欢的话可以star一下
小白都能看懂的实战教程 手把手教你Python Web全栈开发 DAY 5
今天来到我们实战系列的第五天,在之前的四天里,我们已经完成了在线论坛系统的导航条、登录、注册、论坛页面、帖子详情页面等的功能实现,目前我们的论坛已经可以进行帖子发布,查看帖子详情,并且进行回复信息了。在上一讲中,我们还是先了功能限制,对不同用户的访问进行过滤。下面我们继续来完善我们的这个在线论坛系统,今天我们来完善我们的在线论坛系统的个人中心。
5.1个人中心页面实现
今天我们就来实现我们的个人中心页面,这里本来是打算使用AJAX实现的,个人中心使用AJAX实现的话,可以使得整体不变,当我们点击各个分栏的时候只返回各个分栏的信息,是一个非常好的选择。但是由于这个系列打算让每一个看的人都能够看懂,实现这个功能,所以我们这简化一点,直接使用普通的一个请求页面。后面有兴趣的同学可以进行进一步的优化,后面有空的话,我也会将后面逐渐优化的教程发出来。
本文原创为CSDN博主亓官劼,原文链接为:收藏!最详细的Python全栈开发指南 看完这篇你还不会Python全栈开发 你来打我!!!,请大家支持原创,拒绝抄袭。
5.1.1 个人中心页面-后端
那我们就开始实现我们我的个人中心了,这里我们的个人中心只显示我们的一些基础资料(我们也没设置多少),这里只做一个大致的样式展示,更多的功能我们后续慢慢的进行一个拓展。
我们去看了一下我们的数据库,发现我们个人中心能够进行展示的,也就只有我们的email、昵称、用户类型、创建时间和手机号码可以进行一个展示和修改。那我们就展示这么多吧,大家也可以添加一下个性签名,头像等一系列的个人标识进入数据库中。
那我们就开始获取我们的数据了,首先我们需要限制只有登录的用户才可以进入到我们的个人中心,限制的方法在上一讲中已经实现了。# 个人中心 @app.route('/personal') @login_limit def personal(): if request.method == 'GET': email = session.get('email') try: cur = db.close() sql = "select email, nickname, type, create_time, phone from UserInformation where email = '%s'" % email db.ping(reconnect=True) cur.execute(sql) personal_info = cur.fetchone() except Exception as e: raise e return render_template('personal.html',personal_info = personal_info)
5.1.2 个人中心页面-前端
在后端获取完数据之后,我们在前端对获取到的数据进行展示即可。所以我们先设计个勉强能够看得过去的架子,来展示我们的数据。先上个效果图吧:
确实是比较简陋的,但是功能齐全吧。我们这里使用的是<table>
标签进行显示的,也可以使用<li>
进行显示。这里时间上代码吧,personal.html的代码为:{% extends 'base.html' %} {% block title %} 个人中心 {% endblock %} {% block css %} <link rel="stylesheet" href="/static/css/personal.css"> {% endblock %} {% block content %} <div class="personal_content"> <div class="page-header" id="page_header"> <h1>个人中心<small>Personal center</small></h1> </div> <div class="personal_info"> <table> <tr class="personal_tr"> <td class="personal_td"> Email address: </td> <td class="personal_td"> {{ personal_info[0] }} </td> </tr> <tr class="personal_tr"> <td class="personal_td"> 昵称: </td> <td class="personal_td"> {{ personal_info[1] }} </td> </tr> <tr class="personal_tr"> <td class="personal_td"> 注册时间: </td> <td class="personal_td"> {{ personal_info[3] }} </td> </tr> <tr class="personal_tr"> <td class="personal_td"> 手机号: </td> <td class="personal_td"> {{ personal_info[4] }} </td> </tr> <tr class="personal_tr"> <td class="personal_td"> 用户类型: </td> <td class="personal_td"> {% if personal_info[2] == 0 %} 普通用户 {% else %} 管理员 {% endif %} </td> </tr> </table> </div> </div> {% endblock %}
personal.css代码为:
.personal_content{ margin-left: 20%; margin-right: 20%; margin-top: 5%; } #page_header{ text-align: center; } .personal_info{ font-size: 24px; margin-left: 10% ; } .personal_td{ width: 300px; } .personal_tr{ height: 50px; }
同时这里也修改了base.html的内容,我们让个人中心在下拉列表中进行显示,我们修改了下拉列表中第一个值和链接,效果图为:
这里的修改的代码为:<li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ nickname }} <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="{{ url_for('personal') }}">个人中心</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </li>
5.2 修改密码功能实现
到这里我们来实现我们的修改密码功能,其实如果使用AJAX实现的话,这一讲的所有功能都应该在个人中心一个页面中进行体现的,我们这里就先这样分开实现吧。大家可以自行改进~
在这里我们就先从前端开始实现了。本文原创为CSDN博主亓官劼,原文链接为:收藏!最详细的Python全栈开发指南 看完这篇你还不会Python全栈开发 你来打我!!!,请大家支持原创,拒绝抄袭。
5.2.1 修改密码功能实现-前端
我们修改密码的话,这里采用一个简单的验证,就是知道我们当前的密码就可以进行一个修改密码。我们设计一个表单,分别输入旧密码,新密码,确认新密码即可。先上个效果图再说实现:
这效果图还是大家熟悉的味道,有没有!我们这里还是一个简单的div,里面加个页头,下面3个input
。这里和前面的原理一样,这里我们预留了一个flash传输消息的地方,用于等会后端向前面传递消息提示,我们就直接上代码吧:
change_password.html:{% extends 'base.html' %} {% block title %} 修改密码 {% endblock %} {% block css %} <link rel="stylesheet" href="/static/css/change_password.css"> {% endblock %} {% block content %} <div class="change_password_content"> <div class="page-header" id="page_header"> <h1>修改密码<small>Change Password</small></h1> </div> <div class="change_password_div"> <form method="post"> <span style=" font-size:20px;color: red" > {% for item in get_flashed_messages() %} {{ item }} {% endfor %} </span> <div class="form-group"> <label for="exampleInputPassword1">旧密码:</label> <input type="password" class="form-control" name="old_password" id="exampleInputPassword1" placeholder="密码"> </div> <div class="form-group"> <label for="exampleInputPassword1">新密码:</label> <input type="password" class="form-control" name="new_password1" id="exampleInputPassword1" placeholder="密码"> </div> <div class="form-group"> <label for="exampleInputPassword1">确认密码:</label> <input type="password" class="form-control" name="new_password2" id="exampleInputPassword1" placeholder="密码"> </div> <div id="password_butt"> <button type="submit" class="btn btn-default">修改密码</button> </div> </form> </div> </div> {% endblock %}
change_paasword.css:
#page_header{ text-align: center; } .change_password_content{ margin-left: 20%; margin-right: 20%; margin-top: 8%; } #password_butt{ text-align: center; }
5.2.1 修改密码功能实现-后端
下面我们来实现修改密码的后端功能,使他能够正确的修改密码。我们首先获取我们的当前登录用户的用户名,这里我们的修改密码的功能也是只有我们登录的用户才可以访问的功能。首先我们判断是不是3个数据都获取到了,并且2个密码一致,如果有错误,我们返回提示。如果数据都正确的话,我们开始处理,先获取我们的email。我们获取到email之后去数据库中查找我们的密码,这里的密码是加密的,所以我们要使用check_password_hash()来进行验证,如果旧密码是正确的,我们就进行修改新密码,如果不正确,则返回。完整的后端代码为:
# 修改密码 @app.route('/change_password',methods=['GET','POST']) @login_limit def change_password(): if request.method == 'GET': return render_template('change_password.html') if request.method == 'POST': old_password = request.form.get('old_password') new_password1 = request.form.get('new_password1') new_password2 = request.form.get('new_password2') if not all([old_password,new_password1,new_password2]): flash("信息填写不全!") return render_template('change_password.html') if new_password1 != new_password2: flash("两次新密码不一致!") return render_template('change_password.html') email = session.get('email') try: cur = db.cursor() sql = "select password from UserInformation where email = '%s'" % email db.ping(reconnect=True) cur.execute(sql) password = cur.fetchone()[0] if check_password_hash(password,old_password): password = generate_password_hash(new_password1, method="pbkdf2:sha256", salt_length=8) sql = "update UserInformation set password = '%s' where email = '%s'" % (password,email) db.ping(reconnect=True) cur.execute(sql) db.commit() cur.close() return render_template('index.html') else: flash("旧密码错误!") return render_template('change_password.html') except Exception as e: raise e
在实现后端功能之后,我们可以再导航栏中加入修改密码的导航,我们还是加载下来列表中,将第二个修改为修改密码。
<li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ nickname }} <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="{{ url_for('personal') }}">个人中心</a></li> <li><a href="{{ url_for('change_password') }}">修改密码</a></li> <li><a href="#">Something else here</a></li> <li role="separator" class="divider"></li> <li><a href="#">Separated link</a></li> </ul> </li>
效果为:
5.3 查看发布帖子功能实现-后端
5.3.1 查看发布帖子功能实现-后端
下面我们来实现个人中心的另一个功能,就是查看我们自己所发布的所有的帖子信息,并且可以在此页面进入到我们所发布的帖子中去。这里我们还是先写后端,向前端去传输我们的数据。这个页面是也是需要我们登录才可以查看的,因为查看的是我们所登录的这个账号所发布的帖子列表。
所以这里我们先获取我们需要的数据,然后把它返回到前端即可,这里先创建一个前端的html文件,这里使用show_issue.html,我们后端的代码为:# 查看已发布的帖子 # 查看已发布的帖子 @app.route('/show_issue') @login_limit def show_issue(): if request.method == 'GET': email = session.get('email') try: cur = db.cursor() sql = "select ino, email, title, issue_time from Issue where email = '%s' order by issue_time desc" % email db.ping(reconnect=True) cur.execute(sql) issue_detail = cur.fetchall() except Exception as e: raise e return render_template('show_issue.html',issue_detail=issue_detail)
5.3.2 查看发布帖子功能实现-前端
下面我们开始实现前端的一个功能,我们这里使用和论坛列表相似的功能,我们这里只需要显示帖子的标题即可。这里先上效果图:
我们这里只需要设计一个<li>
将我们后端发送的数据仅显示出来即可。show_issue.html:{% extends 'base.html' %} {% block title %} 已发布的帖子 {% endblock %} {% block css %} <link rel="stylesheet" href="/static/css/show_issue.css"> {% endblock %} {% block content %} <div class="show_issue_content"> <div class="page-header" id="page_header"> <h1>已发布的帖子列表</h1> </div> <div class="issue_list_div"> <ul class="issue_list_ul"> {% for issue in issue_detail %} <li class="issue_list_li"> <div class="issue_div"> <div class="issue_content"> <h3> <a href="{{ url_for('issue_detail',Ino = issue[0]) }}"> {{ issue[2] }} </a> </h3> </div> <div class="author_info"> <p class="post-info"> <span>发布时间:{{ issue[3] }}</span> </p> </div> </div> </li> {% endfor %} </ul> </div> </div> {% endblock %}
show_issue.css:
#page_header{ text-align: center; } .issue_list_ul{ list-style-type: none; margin-left: 0; padding-left: 0; } .author_info{ text-align: right; } .issue_div{ border-bottom:1px solid #eee; } .issue_content{ max-height: 200px; } .show_issue_content{ margin-right: 20%; margin-left: 20%; margin-top: 8%; }
这里我们也修改一下base.html文件,设置下来列表。
我们在导航栏的下拉列表中添加我们这章个人中心的三个页面,这里贴一下目前base.html的全部代码,防止有的小伙伴找不到修改的地方。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> {% block title %} {# 其他页面重写标题的地方#} {% endblock %} </title> {% block css %} {# 其他页面引用样式或者js的地方#} {% endblock %} <link rel="stylesheet" href="/static/css/base.css"> <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script> <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.0/js/bootstrap.min.js"></script> <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="navigation_bar"> <nav class="navbar navbar-default"> <div class="container-fluid"> {# 由于这里我们不需要使用商标,所以对Bran部分进行了删除#} <!-- Collect the nav links, forms, and other content for toggling --> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <ul class="nav navbar-nav"> <li class="{% block index_class %}{% endblock %}"><a href="{{ url_for('index') }}">首页<span class="sr-only">(current)</span></a></li> <li class="{% block formula_class %}{% endblock %}"><a href="{{ url_for('formula') }}">论坛</a></li> </ul> <form class="navbar-form navbar-left"> <div class="form-group"> <input type="text" class="form-control" placeholder="Search"> </div> <button type="submit" class="btn btn-default">Submit</button> </form> <ul class="nav navbar-nav navbar-right"> {% if email %} <li class="{% block post_issue_class %}{% endblock %}"><a href="{{ url_for('post_issue') }}">发布帖子</a></li> <li class=""><a href="{{ url_for('register') }}">注销</a></li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{ nickname }} <span class="caret"></span></a> <ul class="dropdown-menu"> <li><a href="{{ url_for('personal') }}">个人中心</a></li> <li><a href="{{ url_for('change_password') }}">修改密码</a></li> <li role="separator" class="divider"></li> <li><a href="{{ url_for('show_issue') }}">已发布的帖子</a></li> </ul> </li> {% else %} <li class="{% block register_class %}{% endblock %}"><a href="{{ url_for('register') }}">注册</a></li> <li class="{% block login_class %} {% endblock %}"><a href="{{ url_for('login') }}">登录</a></li> {% endif %} </ul> </div><!-- /.navbar-collapse --> </div><!-- /.container-fluid --> </nav> </div> <div class="content" style="padding: 0;margin: 0;"> {% block content %} {# 其他页面重写页面内容的地方#} {% endblock %} </div> </body> </html>
感谢大家的关注、点赞和收藏,DAY 6在凌晨也已经出啦,这是一个系列,从DAY1开始,大家可以从头看呦,有需要的可以收藏~
本文原创为CSDN博主亓官劼,原文链接为:收藏!最详细的Python全栈开发指南 看完这篇你还不会Python全栈开发 你来打我!!!,请大家支持原创,拒绝抄袭。
-
Web全栈~31.并发
2021-02-03 14:10:53Web全栈~31.并发 上一期 -
达内2018web全栈视频
2018-10-31 20:26:00达内2018web全栈视频,下载txt,里面有百度云下载地址 -
web全栈架构师资料.7z
2021-02-21 21:15:59web全栈架构师资料.7z -
Web全栈~32.深入理解synchronized
2021-02-04 11:40:34Web全栈~32.理解synchronized 上一期 -
Web全栈~34.CAS
2021-02-15 15:37:30Web全栈~34.CAS 上一期 原子变量 -
Web全栈全端技术体系与软件四层结构
2018-06-11 11:55:40Web全栈技术解析视频教程,着重分析过去的技术体系、现在与未来的技术体系、Web 全栈技术的就业前景、过气但不过时的 MVC 三层开发、引入 CQRS 框架进行四层开发、Auxo前后端三位一体开发实战。 -
Web全栈~18.jQuery
2021-01-18 21:04:32Web全栈~18.jQuery 上一期 jQuery是JavaScript的一个函数库,对JavaScript进行了一个封装。jQuery将常用的、复杂的操作进行函数化封装,直接调用,大大降低了使用... -
黑马最新的web全栈视频
2018-05-12 00:11:20黑马最新的web全栈视频,最新的一期,非常的全面。从0到所有 -
Web全栈~25.文件
2021-01-20 17:11:28Web全栈~25.文件 上一期 二进制思维 在计算机中,所有文件,不论是可执行文件,还是图片文件、视频文件、word文件、压缩文件又或者txt文件。他们其实都是以0和1的二进制形式... -
Web全栈~29.MySQL
2021-02-03 14:02:05Web全栈~29.MySQL 上一期 MySQL安装 根据自己的需求选择~ 不过本人选了第一个,开发者默认~ 大多数操作,只需要默认下一步就好了,就不一一发截图了~ 接下来又是一顿next和finish~ 然后还是一顿Next和Finish~最后安装... -
Web全栈~20.异常机制
2021-01-19 13:11:50Web全栈~20.异常机制 上一期 NullPointerException 空指针异常 public class Test { public static void main(String[] args) { String str = null; System.out.println(str.charAt(2)); System.out.println(... -
Web全栈~21.泛型
2021-01-19 14:46:34Web全栈~21.泛型 上一期 前言 泛型的意思其实就是指广泛的类型。类、接口、以及方法代码都可以应用非常广泛的类型。 包装类 ... -
Web全栈~26.IO
2021-02-02 13:25:14Web全栈~26.IO 上一期 Java处理文件的方法 IO流 在Java中,文件是视为输入输出(Input/Output , IO)设备的一种。Java使用基本统一的概念来处理所有的IO,包括键盘、显示终端... -
Web全栈~33.线程的中断
2021-02-08 16:11:28Web全栈~33.线程的中断 上一期 -
Web全栈开发基础(小白入门版本)
2020-09-10 12:32:49近几个月认真写了写Web全栈代码,有点小收获这里分享一下。我还做了个PPT,资源路径 欢迎拍砖指点! Web全栈开发是一个听起来很虎的名词。本文从技术层面解释全栈开发,能帮助没有全栈概念,或者说对相关技术比如... -
Web全栈~30.JDBC
2021-02-03 14:07:12Web全栈~30.JDBC 上一期 JDBC: JDBC(Java DataBase Connectivity, Java数据库连接) ,是一种用于执行SQL语句的Java API,为多种关系数据库提供统一访问,它由一组用Java... -
Web全栈工程师的自我修养.epub
2018-05-08 11:19:09Web全栈工程师的自我修养.epub ,适用于Mac及IOS终端阅读,体验很赞 -
开课吧python全栈靠谱么-杭州Web全栈
2020-10-28 21:24:51Web全栈招生简章开课吧简介开课吧,中国有口皆碑的互联网人学习平台,为互联网从业者及潜在从业者提供O2O职业学习、就业、职业成长服务,让学习者收获互联网从业技能和能力,从而实现从"校园”进入"职场”... -
《Web全栈工程师的自我修养》
2017-11-01 19:40:48《Web全栈工程师的自我修养》是一本非常不错的书籍,作者来自于腾讯,根据自己的工作经验,总结了一套全栈工程师需要的各种技能。 -
code.zip.web全栈工程师实战源码,
2020-06-01 21:55:51web全栈工程师实战源码,原理分析,学习课件,思维导图,适合前端学习爱好者!!!!code.zip,带你了解底层原理 -
Web全栈~36.Servlet
2021-02-23 14:20:23Web全栈~36.Servlet 上一期 Tomcat JDK和Tomcat安装和配置 点击这里 Tomcat 目录结构与介绍 bin bin 目录主要是用来存放 tomcat 的命令文件,主要有两大类,一类是以.sh ... -
Web全栈工程师修养
2016-06-19 23:37:00根据项目的不同,客户需要的可能是移动栈、Web栈,或者原生应用栈深以为然,所以,全栈工程师应该分为Web全栈和App全栈。恰巧最近看了本有关Web全栈工程师的书,记录下其中一些观点。笔记应该从能力... -
Omnistack:投影机与周刊Omnistack 11. Desenvolvimento Web全栈-源码
2021-02-22 12:07:47Omnistack:投影机与周刊Omnistack 11. Desenvolvimento Web全栈 -
Web全栈~22.数据结构(线性表)
2021-01-19 15:38:07Web全栈~22.数据结构(线性表) 上一期 前言 数据结构系列的博客,我过去也有写过,但那都是基于C语言。接下来几期关于数据结构的博客则会使用Java来实现。数据结构的逻辑... -
Web全栈~28.网络编程
2021-02-03 12:39:11Web全栈~28.网络编程 上一期 前言 网络编程往往都是困难、复杂,而且极易出错的。程序员必须掌握与网络有关的大量细节,有时甚至要对硬件有深刻的认识。一般地,我们需要...
-
Android手机开发(三)
-
AD入门(2)——原理图篇
-
2011年上半年 系统分析师 下午试卷 论文 软考真题【含答案和答案解析】
-
架构腐化之谜
-
C++新特性 强制转换static_cast
-
基础知识
-
2016年上半年 系统分析师 下午试卷 论文 软考真题【含答案和答案解析】
-
C++代码规范和Doxygen根据注释自动生成手册
-
低速湍流中的气动光学效应实验研究
-
MySQL 高可用工具 heartbeat 实战部署详解
-
iPhone消息推送机制实现与探讨
-
朱老师c++课程第3部分-3.5STL的其他容器讲解
-
Docker从入门到精通
-
scrapy_settings.py
-
分享一个自己做的简易敏捷开发管理工具——AgileLite
-
【Pytorch】pytorch安装(包含cuda安装详细教程)
-
MySQL 多实例安装 及配置主从复制实验环境
-
点-源码
-
2014年上半年 信息系统项目管理师 下午试卷 论文 软考真题【含答案和答案解析】
-
2015年下半年 信息系统项目管理师 下午试卷 论文 软考真题【含答案和答案解析】