效果图

首先是数据库

/*
Navicat MySQL Data Transfer Source Server : xm
Source Server Version : 50553
Source Host : localhost:3306
Source Database : test Target Server Type : MYSQL
Target Server Version : 50553
File Encoding : 65001 Date: 2019-01-17 15:00:23
*/ SET FOREIGN_KEY_CHECKS=0; -- ----------------------------
-- Table structure for test_topic
-- ----------------------------
DROP TABLE IF EXISTS `test_topic`;
CREATE TABLE `test_topic` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`user_id` int(11) NOT NULL,
`created_at` int(11) NOT NULL,
`is_delete` tinyint(1) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=57 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of test_topic
-- ----------------------------
INSERT INTO `test_topic` VALUES ('', 'php是最好的语言4', '沙发是的范德萨撒范德萨发敖德萨多第三方撒地方大SAV大V', '', '', '');
INSERT INTO `test_topic` VALUES ('', 'ceshi ', '大大沙发斯蒂芬', '', '', '');
INSERT INTO `test_topic` VALUES ('', '的是非得失', '第三个梵蒂冈', '', '', '');
INSERT INTO `test_topic` VALUES ('', '多福多寿', '阿道夫', '', '', '');
INSERT INTO `test_topic` VALUES ('', '王企鹅去吧', '无法让我', '', '', '');
INSERT INTO `test_topic` VALUES ('', '我的钱多额', 'werewolf未确认翁', '', '', '');
INSERT INTO `test_topic` VALUES ('', '', '', '', '', '');
INSERT INTO `test_topic` VALUES ('', '', '', '', '', '');
INSERT INTO `test_topic` VALUES ('', '56ttt', '232323跳跳糖', '', '', ''); -- ----------------------------
-- Table structure for test_user
-- ----------------------------
DROP TABLE IF EXISTS `test_user`;
CREATE TABLE `test_user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL COMMENT '用户名',
`email` varchar(100) CHARACTER SET latin1 NOT NULL COMMENT '邮箱',
`avatar` varchar(255) CHARACTER SET latin1 NOT NULL,
`password` varchar(100) CHARACTER SET latin1 NOT NULL COMMENT '密码',
`created_at` int(11) NOT NULL,
`is_delete` tinyint(1) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=35 DEFAULT CHARSET=utf8; -- ----------------------------
-- Records of test_user
-- ----------------------------
INSERT INTO `test_user` VALUES ('', 'zxj', 'zzz@qq.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');
INSERT INTO `test_user` VALUES ('', '', 'haha@haha.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');
INSERT INTO `test_user` VALUES ('', '', 'zhaoxiaojuan@test.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');
INSERT INTO `test_user` VALUES ('', '', 'zhaoxiaojuan@test.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');
INSERT INTO `test_user` VALUES ('', '', 'zhaoxiaojuan@test.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');
INSERT INTO `test_user` VALUES ('', 'root', 'zhaoxiaojuan@test.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');
INSERT INTO `test_user` VALUES ('', 'root', 'zhaoxiaojuan@test.com', 'images/avatar.jpg', '9db06bcff9248837f86d1a6bcf41c9e7', '', '');

模型层

application/common/model/Base.php

<?php
namespace app\common\model;
use think\Model;
class Base extends Model{ protected $autoWriteTimestamp = true;
protected $createTime='created_at';
/**
* 新增逻辑
* @auth cyy
* @param array $data [description]
* @return int
*/
public function add($data = []) {
if(empty($data) || !is_array($data)) {
return false;
} $this->allowField(true)->save($data);
return $this->id;
}
}

application/common/model/Topic.php

<?php
namespace app\common\model;
class Topic extends Base
{
//查询属于哪个用户
public function user()
{
// 连接topic表中的user_id
return $this->hasOne('User','id','user_id');
} //获取所有留言
public static function getTopics()
{
$topics = model("Topic")
->order("id", "desc")
->select();
return $topics;
} //获取某条留言
public static function getTopic($id)
{
$topic = self::find(['id' => $id]);
//print_r(model("Topic")->getLastSql());die();
return $topic;
}
}

application/common/model/User.php

<?php
namespace app\common\model;
use think\Model; class User extends Base{
//查询账号
public function isUser($condition) {
return $this->where($condition)
->limit(1)
->select();
}
}

控制器层

application/index/controller/Base.php

<?php
namespace app\index\controller;
use think\Controller;
class Base extends Controller { /**
* 空操作
* @auth singwa
* @param [type] $name [description]
* @return [type] [description]
*/
public function _empty($name) {
return $name;
}
}

application/index/controller/Index.php

<?php
namespace app\index\controller;
use think\Db;
use app\common\model\User;
use app\common\model\Topic as TopicModel;
class Index extends Base
{
public function index()
{
//获取session
$name=session('name');
//获取留言列表
$topic=model('Topic');
$topics=$topic->getTopics();
//输出到模板 echo $this->fetch('',[
'name'=>$name,
'topics'=>$topics,
]);
} //注册
public function register()
{
echo $this->fetch();
} //添加账号
public function add(){
//如果有数据提交
if(!empty(input('param.'))){
//接收数据
$userdata=input('param.');
$name=$userdata['username'];
$email=$userdata['email'];
$password=$userdata['password'];
$password_confirmation=$userdata['password_confirmation'];
//验证确认密码是否正确
if($password_confirmation!=$password){
$this->error('两次密码输入不一致','index/register');
}
$data=[
'name'=>$name,
'email'=>$email,
'password'=>$password,
];
//存储数据
$user=model('User');
$id=$user->add($data);
$this->success('注册成功','index/login');
}
} //登录
public function login()
{
//检测是否登录
if(session('name')){
return $this->error('您已经登录',url('index/index'));
}
echo $this->fetch();
//获取session
$name=session('name');
//输出到头部模板
echo $this->fetch('common/header',[
'name'=>$name,
]);
} //登录检测
public function isUser(){
//如果有数据提交
if(!empty(input('param.'))){
//接收数据
$userdata=input('param.');
$login=$userdata['login'];
$password=$userdata['password'];
//查询条件
$condition1=[
'name'=>$login,
'password'=>$password,
];
$condition2=[
'email'=>$login,
'password'=>$password,
];
//查询
$user=model('User');
$login1=$user->isUser($condition1);
$login2=$user->isUser($condition2);
if(!empty($login1)){
//姓名登录
session('id',$login1[0]->id);
session('name',$login1[0]->name);
$this->success('登录成功','index/index');
}else if(!empty($login2)){
//邮箱登录
session('id',$login2[0]->id);
session('name',$login2[0]->name);
$this->success('登录成功','index/index');
}else{
$this->error('登录失败','index/login');
}
}
} //退出
public function logout(){
session('name',null);
$this->redirect('index/index');
}
}

application/index/controller/Topic.php

<?php
namespace app\index\controller;
use think\Db;
use app\common\model\Topic as TopicModel;
class Topic extends Base
{
public function _initialize(){
//检测是否登录
if(!session('name')){
$this->error('您没有登录',url('index/login'));
}
}
//发帖页面
public function new_topic(){
echo $this->fetch();
//获取session
$name=session('name');
//输出到头部模板
echo $this->fetch('common/header',[
'name'=>$name,
]);
} //添加新帖
public function add_topic(){
//如果有数据提交
if(!empty(input('param.'))){
//接收数据
$topicdata=input('param.');
$title=$topicdata['title'];
$content=$topicdata['content'];
$user_id=session('id'); $data=[
'title'=>$title,
'content'=>$content,
'user_id'=>$user_id,
];
//存储数据
$topic=model('Topic');
$id=$topic->add($data);
$this->success('添加成功','index/index');
}
} //编辑新帖页面
public function detail_topic(){
//接收id
$id=input('param.id');
//查询这条帖子的发布者
$condition=[
'id'=>$id,
];
$user=model('Topic')->where($condition)->find();
$user_id=$user->user_id;
//判断是否有权限编辑帖子
if(session('id') != $user_id){
$this->error('您没有权限修改!');
}
$topic=model('Topic')->getTopic($id);
echo $this->fetch('',[
'topic'=>$topic,
]);
//获取session
$name=session('name');
//输出到头部模板
echo $this->fetch('common/header',[
'name'=>$name,
]);
} //更新帖子数据
public function update_topic(){
//如果有数据提交
if(!empty(input('param.'))){
//接收数据
$topicdata=input('param.');
$title=$topicdata['title'];
$content=$topicdata['content'];
$id=$topicdata['id']; $data=[
'title'=>$title,
'content'=>$content,
];
$condition=[
'id'=>$id,
];
//存储数据
$res=model('Topic')->where($condition)->update($data);
if($res){
$this->success('编辑成功','index/index');
}else{
$this->error('编辑失败');
} }
}
}

视图层

application/index/view/common/header.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>test论坛</title>
<link rel="stylesheet" href="<?=STATIC_URL?>css/all-df86af5803.css">
<script src="<?=STATIC_URL?>js/all-17476e6cc3.js"></script>
</head>
<body class="forum" data-page="forum">
<div class="header">
<nav class="navbar navbar-inverse navbar-fixed-top navbar-default">
<div class="container">
<div class="navbar-header" id="navbar-header">
<a href="<?=url('index/index');?>" class="navbar-brand"><img src="<?=STATIC_URL;?>images/logo.png"></a>
</div>
<div id="main-nav-menu">
<ul class="nav navbar-nav">
<li class="active">
<a href="<?=url('index/index');?>">
<i class="fa fa-home"></i>
<span class="hidden-xs hidden-sm">首页</span>
</a>
</li>
</ul>
</div>
<ul class="nav navbar-nav navbar-right">
<?php if(!isset($name)): ?>
<li><a href="<?=url('index/register');?>" id="signup-btn">注册</a></li>
<li><a href="<?=url('index/login');?>" id="login-btn">登录</a></li>
<?php else: ?>
<li><a href="<?=url('topic/new_topic');?>">发帖</a></li>
<li>
<ul class="nav user-bar navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false"><?php echo $name; ?>
<span class="caret"></span></a>
<button class="navbar-toggle" type="button" data-toggle="dropdown" role="button" aria-expanded="false">
<span class="sr-only">Toggle</span>
<i class="fa fa-reorder"></i>
</button>
<ul class="dropdown-menu" role="menu"> <li class='divider'></li>
<li>
<a href="<?=url('index/logout');?>" onclick="return confirm('你确定要退出吗?')"><i class="fa fa-sign-out"></i>退出</a>
</li>
</ul>
</li>
</ul>
</li>
<?php endif; ?>
</ul>
</div>
</nav>
</div>

application/index/view/common/footer.html

    <footer class="footer">
<div class="container">
<div class="copyright">
<blockquote class="pull-left">
<p>test论坛</p>
<p>Copyright &copy; 2015-2016 <a href="#">test</a> 1.0.0-rc2 <span class="pipe">|</span><span class="pipe">|</span></p>
</blockquote>
</div>
<div class="pull-right hidden-sm hidden-xs">
<p>
<a href="#"target="_blank">
<img src="<?=STATIC_URL;?>images/test-logo.png" border="0" height="40" data-toggle="tooltip" data-placement="top" title="Powered by test"/>
</a>
</p>
</div>
</div>
</footer>
</body>
</html>

application/index/view/common/topic_list.html

<div class="col-md-9 threads-index main-col">
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-left hidden-sm hidden-xs">
<i class="fa fa-list"></i> 首页
</div>
<div class="clearfix"></div>
</div>
<div class="panel-body remove-padding-horizontal">
<?php foreach($topics as $vo): ?>
<ul class="list-group row thread-list">
<li class="list-group-item media " style="margin-top: 0px;">
<div class="avatar pull-left">
<a href="<?=url('topic/detail_topic');?>?id=<?php echo $vo['id']; ?>">
<img class="media-object img-thumbnail avatar-48" alt="imooc"
src="<?=STATIC_URL;?><?php echo $vo['user']['avatar']; ?>"/>
</a>
</div>
<div class="infos">
<div class="media-heading">
<i class=""><?php echo $vo['title']; ?></i>
<a href="<?=url('topic/detail_topic');?>?id=<?php echo $vo['id']; ?>">
</div>
<div class="media-body meta">
<a href="<?=url('topic/detail_topic');?>?id=<?php echo $vo['id']; ?>">
<span><?php echo $vo['content']; ?></span>
</a> <span class="timeago" data-toggle="tooltip" data-placement="top"
title="">
</span>
</div>
</div>
</li>
</ul>
<?php endforeach; ?>
</div>
</div>
</div>
ALTER TABLE test_user ALTER avatar SET DEFAULT "images/avatar.jpg" ;

application/index/view/index/index.html

<?php require(APP_PATH.'/index/view/common/header.html');?>
<div id="main" class="main-container container">
<!-- 首页通栏(4个推荐位) -->
<?php require(APP_PATH.'/index/view/common/topic_list.html');?>
</div>
<div class="clearfix"></div>
<?php require(APP_PATH.'/index/view/common/footer.html');?>

application/index/view/index/login.html

<?php require(APP_PATH.'/index/view/common/header.html');?>
<div id="main" class="main-container container">
<div class="container-fluid">
<div class="row">
<div class="col-md-5 col-md-offset-2">
<div class="panel panel-default">
<div class="panel-heading">登录</div>
<div class="panel-body">
<form role="form" method="POST" action="<?=url('index/isUser');?>">
<input type="hidden" name="_token" value="BAnCy9yzQxp30BiIkeU58OMjR5uWeDM9dCSMNwKH">
<div class="form-group">
<input type="login" class="form-control" name="login" value="" placeholder="用户名或邮箱地址">
</div>
<div class="form-group">
<input type="password" class="form-control" name="password" placeholder="密码">
</div>
<div class="form-group">
<input type="submit" name="commit" value="登录" class="btn btn-primary btn-lg btn-block">
</div>
</form>
</div>
<div class="panel-footer">
<a href="<?=url('index/register');?>">注册</a>
<!--<a href="/password/email">忘记密码?</a>-->
</div>
</div>
</div>
<div class="col-md-3">
<div class="panel panel-default">
<div class="panel-heading">登陆提示</div>
<ul class="list-group">
<li class="list-group-item">
如果您忘记了密码,请联系管理员。
</li>
</ul>
</div>
</div>
</div>
</div> </div>
<?php require(APP_PATH.'/index/view/common/footer.html');?>

application/index/view/index/register.html

<?php require(APP_PATH.'/index/view/common/header.html');?>
<div id="main" class="main-container container">
<div class="container-fluid">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="panel-heading">注册</div>
<div class="panel-body">
<form role="form" method="POST" action="<?=url('index/add');?>">
<div class="form-group">
<input type="text" class="form-control" name="username" value="" placeholder="用户名">
</div>
<div class="form-group">
<input type="text" class="form-control" name="email" value="" placeholder="邮箱地址">
</div>
<div class="form-group">
<input type="password" class="form-control" name="password" placeholder="密码">
</div>
<div class="form-group">
<input type="password" class="form-control" name="password_confirmation" placeholder="确认密码">
</div>
<div class="form-group"></div>
<div class="form-group">
<button type="submit" class="btn btn-primary">
注册
</button>
<a href="/" class="btn btn-default">取消</a>
</div>
</form>
</div>
<div class="panel-footer">
已注册或使用社交账号登录,请点击 <a href="<?=url('index/login');?>">这里</a> 进行登录。
</div>
</div>
</div>
</div>
</div>
</div>
<?php require(APP_PATH.'/index/view/common/footer.html');?>

application/index/view/topic/detail_topic.html

<?php require(APP_PATH.'/index/view/common/header.html');?>
<div id="main" class="main-container container">
<div class="row max-width">
<div class="col-xs-12">
<ul class="breadcrumb">
<li>
<a href="index.html">首页</a>
</li>
<li>
<strong>发表新帖</strong>
</li>
</ul>
</div>
</div>
<div class="thread_create">
<div class="col-md-9 main-col">
<div class="panel panel-default corner-radius">
<div class="panel-heading">发表新帖</div>
<div class="panel-body">
<div class="reply-box form box-block">
<form method="POST" action="<?=url('topic/update_topic');?>" accept-charset="UTF-8" id="thread_create_form" class="create_form">
<div class="form-group">
<input class="form-control" id="thread_title" placeholder="标题" name="title" type="text" value="<?= $topic->title?>">
<input class="form-control" id="id" placeholder="标题" name="id" type="hidden" value="<?= $topic->id?>">
</div> <!-- editor start -->
<div class="editor-toolbar">
<ul class="nav nav-pills" style="clear:none;">
<li class="edit active"><a href="#">帖子内容:</a></li>
</ul>
</div>
<!-- end -->
<div class="form-group">
<textarea class="post-editor form-control" rows="15"
style="overflow:hidden" id="body_field" placeholder="请撰写内容" name="content" cols="50" ><?= $topic->content ?></textarea>
</div> <div class="form-group status-post-submit">
<input class="btn btn-primary col-xs-2" id="" type="submit" value="发布">
</div> </form>
</div>
</div>
</div> </div> <div class="col-md-3 side-bar"> <div class="panel panel-default corner-radius help-box">
<div class="panel-heading text-center">
<h3 class="panel-title">发帖提示</h3>
</div>
<div class="panel-body">
<ul class="list">
<li>主题标题
<p>请在标题中描述内容要点。</p>
</li>
<li>选择节点
<p>请为你的主题选择一个节点。恰当的归类会让你发布的信息更有用。</p>
</li>
<li>正文
<p>imooc 支持 <span style="font-family: Consolas, 'Panic Sans', mono"><a href="https://help.github.com/articles/github-flavored-markdown" target="_blank">GitHub Flavored Markdown</a></span> 文本标记语法。你可以在页面下方实时预览正文的实际渲染效果。</p>
</li>
</ul>
</div>
</div> <div class="panel panel-default corner-radius help-box">
<div class="panel-heading text-center">
<h3 class="panel-title">社区指导原则</h3>
</div>
<div class="panel-body">
<ul class="list">
<li>尊重原创
<p>请不要在 imooc 发布任何盗版链接,包括软件、音乐、电影等。</p>
</li>
<li>友好互助
<p>保持对陌生人的友善。用知识去帮助别人。</p>
</li>
</ul>
</div>
</div> </div>
</div> </div>
<?php require(APP_PATH.'/index/view/common/footer.html');?>

application/index/view/topic/new_topic.html

<?php require(APP_PATH.'/index/view/common/header.html');?>
<div id="main" class="main-container container">
<div class="row max-width">
<div class="col-xs-12">
<ul class="breadcrumb">
<li>
<a href="index.html">首页</a>
</li>
<li>
<strong>发表新帖</strong>
</li>
</ul>
</div>
</div>
<div class="thread_create">
<div class="col-md-9 main-col">
<div class="panel panel-default corner-radius">
<div class="panel-heading">发表新帖</div>
<div class="panel-body">
<div class="reply-box form box-block">
<form method="POST" action="<?=url('topic/add_topic');?>" accept-charset="UTF-8" id="thread_create_form" class="create_form">
<div class="form-group">
<input class="form-control" id="thread_title" placeholder="标题" name="title" type="text">
</div>
<!-- editor start -->
<div class="editor-toolbar">
<ul class="nav nav-pills" style="clear:none;">
<li class="edit active"><a href="#">帖子内容</a></li>
</ul>
</div>
<!-- end -->
<div class="form-group">
<textarea class="post-editor form-control" rows="15"
style="overflow:hidden" id="body_field" placeholder="请撰写内容" name="content" cols="50"></textarea>
</div>
<div class="form-group status-post-submit">
<input class="btn btn-primary col-xs-2" id="" type="submit" value="发布">
</div> </form>
</div>
</div>
</div> </div> <div class="col-md-3 side-bar"> <div class="panel panel-default corner-radius help-box">
<div class="panel-heading text-center">
<h3 class="panel-title">发帖提示</h3>
</div>
<div class="panel-body">
<ul class="list">
<li>主题标题
<p>请在标题中描述内容要点。</p>
</li>
<li>选择节点
<p>请为你的主题选择一个节点。恰当的归类会让你发布的信息更有用。</p>
</li>
<li>正文
<p>imooc 支持 <span style="font-family: Consolas, 'Panic Sans', mono"><a href="https://help.github.com/articles/github-flavored-markdown" target="_blank">GitHub Flavored Markdown</a></span> 文本标记语法。你可以在页面下方实时预览正文的实际渲染效果。</p>
</li>
</ul>
</div>
</div> <div class="panel panel-default corner-radius help-box">
<div class="panel-heading text-center">
<h3 class="panel-title">社区指导原则</h3>
</div>
<div class="panel-body">
<ul class="list">
<li>尊重原创
<p>请不要在 imooc 发布任何盗版链接,包括软件、音乐、电影等。</p>
</li>
<li>友好互助
<p>保持对陌生人的友善。用知识去帮助别人。</p>
</li>
</ul>
</div>
</div> </div>
</div> </div>
<?php require(APP_PATH.'/index/view/common/footer.html');?>

thinkphp论坛项目开发的更多相关文章

  1. 《实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)》

    <实战突击:PHP项目开发案例整合(第2版)(含DVD光盘1张)> 基本信息 作者: 徐康明    辛洪郁 出版社:电子工业出版社 ISBN:9787121221378 上架时间:2014 ...

  2. 简历生成平台项目开发-STEP2问卷调查结果统计分析

    根据之前设计的调查问卷,截止目前为止,一共收到64份问卷结果.一共16题,分别从基本信息.是否对简历制作有需要.对产品期望的特点和建议采纳四个方面设计问题.下面逐题分析问卷结果: 1.您的性别 可以看 ...

  3. 使用Yeoman快速启动AngularJS项目开发

    本博客停止更新,请访问新个人博客:owenchen.net 前言 博客迁移到了BAE上,http://owenchen.net/,以后的文章会首发在自己的博客上,随后在博客园发布. 很久没有写文章了, ...

  4. 用thinkphp进行微信开发的整体设计思考

    用thinkphp进行微信开发的整体设计思考 http://www.2cto.com/weixin/201504/388423.html 2015-04-09      0个评论       作者:明 ...

  5. ASP.NET Core 开源论坛项目 NETCoreBBS

    ASP.NET Core 轻量化开源论坛项目,ASP.NET Core Light forum NETCoreBBS 采用 ASP.NET Core + EF Core Sqlite + Bootst ...

  6. Android项目开发填坑记-so文件引发的攻坚战

    故事的最初 我负责的项目A要求有播放在线视频的功能,当时从别人的聊天记录的一瞥中发现百度有相关的SDK,当时找到的是Baidu-T5Player-SDK-Android-1.4s,项目中Demo的so ...

  7. php(二)使用thinkphp搭建项目

    1.创建项目根目录,配置虚拟主机 1.1.创建项目根目录phpDemo01,将thinkphp_3.2.3_full.zip压缩包中ThinkPHP文件夹复制到项目根目录phpDemo01中. 1.2 ...

  8. 四:DRF项目开发的准备

    一: 虚拟环境virtualenv 如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就 ...

  9. 001_ASP.NET MVC 实用教程 论坛项目 北盟网校 原创视频教程

    下载地址 http://pan.baidu.com/s/1kUJalbp 在线观看地址 http://www.bamn.cn/course/lesson/1 ASP.NET MVC 使用课程,是201 ...

随机推荐

  1. ARTS Week 14

    Jan 27, 2020 ~ Feb 2, 2020 Algorithm Problem 160.Intersection of Two Linked Lists(相交链表) 题目链接 题目描述:给定 ...

  2. mixin很难吗?

    实践类工作经常会遇到这样的问题,有些概念会用不会说,最近在学习Dart,遇到mixin便是如此.读了几篇网文总觉得良莠不齐,一群码友也说越读越懵,索性静下心来重新出发,一点一滴地弄明白.记录下来分享给 ...

  3. 超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形

    本文将帮助你厘清在Kubernetes中调试 deployment的思路.下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复"troublesh ...

  4. 一. 数据分片和路由 <<大数据日知录>> 读书笔记

    本章主要讲解大数据下如何做数据分片,所谓分片,即将大量数据分散在不同的节点,同时每个存储节点还要做副本备份. 而一般的抽象分片方法是, 先将数据映射到一个分片空间,这是多对一的关系,即一个数据分片区间 ...

  5. FTP的连接方式(防火墙的配置)

         FTP是仅基于TCP的服务,不支持UDP.与众不同的是FTP使用2个端口,一个数据端口和一个命令端口(也可叫做控制端口).通常来说这两个端口是21(命令端口)和20(数据端口).       ...

  6. Cobalt Strike Bypassing Windows Defender 使用混淆处理

    Cobalt Strike – Bypassing Windows Defender 混淆处理 对于所有红色团队成员来说,在交付有效的替代品同时又不拖延延展组织的所有风吹草动始终是一个挑战.就像所有其 ...

  7. VueJs一步步实现带感的帮助面板

    环境 IDE: WebStorm 2019.1.4 系统: Mac OS X 10.15.4 VueJs: 2.6.11 Vue-cli: 4.2.2 前言   最近一直在忙毕设,前端终于还是对我这个 ...

  8. ASP.NET MVC通用权限管理系统(响应布局)源码更新介绍

    一.asp.net mvc 通用权限管理系统(响应布局)源码主要以下特点: AngelRM(Asp.net MVC)是基于asp.net(C#)MVC+前端bootstrap+ztree+lodash ...

  9. flex布局小结

    2009年,W3C 提出了一种新的方案----Flex 布局,可以简便.完整.响应式地实现各种页面布局.目前,它已经得到了所有浏览器的支持. Flex 是 Flexible Box 的缩写,意为&qu ...

  10. 疫情之下,使用FRP实现内网穿透,远程连接公司电脑进行办公

    当前情况下,经常会有需要到公司电脑进行一些操作,比如连接内网OA,数据库或者提交文档.为了减少外出,将使用frp进行内网穿透的方法进行一个说明. 前提条件 1. 一台拥有公网 IP 的设备(如果没有, ...