搭建一个视频和论坛网站的一些总结

web服务器搭建:

一.框架介绍

采用Apache+Mysql+PHP的组合。

用wamp软件(包含了整套组合Apache+Mysql+PHP),在windows下安装很方便,mysql除了命令行界面,也有phpMyAdmin界面。当然也能运行在linux下。

二.所需知识点

由于项目时间比较匆忙,所以这里介绍下从零快速搭建服务器的一些准备知识。

1.php

W3school在线课程+随时百度。一些知识点总结见 “网站搭建之php”

2.html

W3school在线课程+随时百度。一些知识点总结见 “网站搭建之html”

3.mysql

浏览书本《MySQL必知必会》。数据库这块不会用到太多,把基本的了解下就行。本次网站的sql脚本,我是用python批量写的,然后在phpMyAdmin界面执行,比较方便。

三.心得

最终完成的网站的主体功能是播放视频和论坛,以及其他一些边边角角的功能。

这个过程中

1.感觉html,mysql和php都算比较简单,可能是自己没有用到太多复杂的东西。

2.感觉像这种普通的web网站搭建,比较麻烦的还是CSS和javascript这两部分。自己对于CSS和javascript从来没接触过,而且时间比较匆忙没来得及学习这两门,都是用到已有的布局。有机会还是得了解下。

3.感觉以后搭建网站需要注意的是

 a.数据库:提前设计好各个数据库表格格式,磨刀不误砍材工,否则数据库设计的不好会导致后面反复的修改代码;

b.代码规范:统一下代码风格,关于CSS,html和php的相互嵌套,先统一规定下,预留好各个代码文件的接口,规范命名 

c.注意浏览器兼容性:写代码的过程,注意用到的知识点有哪些是全部浏览器支持,哪些是部分浏览器支持,否则做出来的东西会少了一大部分用户

d.注意代码安全性:写代码的过程,注意安全性,否则会存在很大的潜在危险

e.注意代码高效性:php也是存在不同写法有不同效率的问题。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
BBS网站,我对它使用到了JSP,java,HTML,javaScript等技术,相信它是学习JSP的一个好东西 public interface IReplyDao { /** * 根据主题id,查找回复的信息 * @param replyId * @return 回复 */ public Reply findReply(int replyId); /** * 增加回复信息,返回增加个数 * @param reply * @return */ public int addReply(Reply reply); /** * 根据回复id删除回复,返回删除个数 * @param replyId * @return */ public int deleteReply(int replyId); /** * 修改回复信息,返回修改个数 * @param reply * @return */ public int updateReply(Reply reply); /** * 查询回复,返回某主题第page页回复的列表 * @param page * @param topicId * @return */ public List<Reply> findListReply(int page, int topicId); /** * 根据主题id查询出该主题的回复条数 * @param topicId 主题id * @return 回复条数 */ public int findCountReply(int topicId); /** * 返回回帖的页数 * @return */ public int findReplyPage(int topicId); } ....................... public interface ITopicDao { public Topic findTopic(int topicId); //根据主题id,查找主题的信息 public int addTopic(Topic topic); //增加主题,返回增加个数 public int deleteTopic(int topicId); //根据主题id删除主题,放回删除个数 public int updateTopic(Topic topic); //更新一个主题的信息,返回更新个数 public List<Topic> findListTopic(int page, int boardId); //查询帖子,返回某版第page页的帖子列表 public int findTopicCount(int boardId);//根据boardId查询版块主题数 public int findTopicPage(int boardId);//返回主题的页数 Topic findFinalTopic( int boardId ); } public interface IBoardDao { //增加一个论坛版块 public int addBoard(Board board); /* 查找版块map,key是父版块号,value是子级版块对象集合 * * @return 封装了版块信息的Map * @throws DbAccessException */ Map<Integer,List<Board>> findAllBoard(); /** * 根据版块id查找版块 * * @param boardId * @return */ Board findBoard(int boardId); } /*完成论坛用户数据层的操作 * */ public class UserDaoImpl extends BaseDao implements IUserDao{ //创建一个存储User用户的数组 private List<User> users = new ArrayList<User>(); //声明Connection的引用 private Connection conn = null; private PreparedStatement pst = null; private ResultSet rst = null; /** * 增加用户 */ public int addUser(User user) { //定义返回值 int ret_val = 0; String sqlStr = "insert into TBL_USER values(?,?,?,?,?)"; //得到联接 conn =super.getCon(); try { SimpleDateFormat hmFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); pst = conn.prepareStatement(sqlStr); pst.setString(1, user.getUName()); pst.setString(2, user.getUPass()); pst.setString(3, user.getHead()); pst.setString(4, hmFormat.format(new Date())); pst.setInt(5, user.getGender()); //返回影响的行数 ret_val =pst.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); }finally { this.closeAll(conn, pst); } return ret_val; /* for (User temp : users) { if(temp == null) { temp = user; temp.setUId(user.getUId()); return 1; } } */ } //删除User对象信息 public int deleteUser(int userId) { int ret_val = 0; String sqlStr = "delete from tbl_user where uid =?"; //得到联接 conn = this.getCon(); try { pst = conn.prepareStatement(sqlStr); pst.setInt(1, userId); ret_val = pst.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { this.closeAll(conn, pst); } return ret_val; } public int updateUser(User user) { //得到联接 conn = this.getCon(); int ret_val = 0; String sqlStr = "update tbl_user set uid=?,uname=?,upass=?,head=?,regTime=?,gender=?"; //String sqlStr = "update TBL_USER set uName='"+user.getUId()+"','"+user.getUName()+"','"+user.getUPass()+"','"+user.getHead()+"',getDate()"+",'"+user.getGender()+"'"; try { //得到时间日期的方法 SimpleDateFormat hmFromat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); pst = conn.prepareStatement(sqlStr); pst.setInt(1, user.getUId()); pst.setString(2, user.getUName()); pst.setString(3, user.getUPass()); pst.setString(4, user.getHead()); pst.setString(5, hmFromat.format(new Date())); pst.setInt(6, user.getGender()); ret_val = pst.executeUpdate(); System.out.println("成功更新了"+ret_val+"行数据"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { this.closeAll(conn, pst); } return ret_val; /* for(int i = 0; i < users.size(); i++) { if(users.get(i) != null && users.get(i).getUName().equals(user.getUName())) { if(users.get(i).getUId()!= i) { throw new Exception("用户id不能修改!"); } users = (List<User>) user; return 1; } } */ } public List<User> findAll() { //创建保存对象的容器集合 List lists = new ArrayList(); //创建结果集 ResultSet rst = null; PreparedStatement pst = null; String sqlStr = "select * from tbl_user where uName=?"; conn = this.getCon(); try { SimpleDateFormat hmFromat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); pst = conn.prepareStatement(sqlStr); rst = pst.executeQuery(); while(rst.next()) { User user = new User(); user.setUId(rst.getInt(1)); user.setUName(rst.getString(2)); user.setUPass(rst.getString(3)); user.setHead(rst.getString(4)); user.setRegTime(hmFromat.format(new Date())); lists.add(user); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { this.closeAll(conn, pst, rst); } return lists; } //根据用户名查找论坛用户 public User findUser(String uName) { User user = new User(); String sqlStr = "select * from tbl_user where uName=? "; //得到联接 conn = this.getCon(); //执行预处理操作 try { pst = conn.prepareStatement(sqlStr); pst.setString(1, uName); //得到结果集 rst = pst.executeQuery(); while(rst.next()) { user.setUId(rst.getInt("uId")); user.setUName(rst.getString("uName")); user.setUPass(rst.getString("Upass")); user.setGender(rst.getInt("gender")); user.setHead(rst.getString("head")); user.setRegTime(rst.getString("regTime")); } } catch (SQLException e) { e.printStackTrace(); }finally { this.closeAll(conn, pst, rst); } return user; } //根据id查找论坛用户 public User findUser(int uId) { User user = new User(); String sqlStr = "select * from tbl_user where uId=?"; //得到联接 conn = this.getCon(); try { //执行预处理操作 pst = conn.prepareStatement(sqlStr); pst.setInt(1, uId); //得到结果集 rst = pst.executeQuery(); while(rst.next()) { user.setUId(rst.getInt("uid")); user.setUName(rst.getString("uName")); user.setUPass(rst.getString("Upass")); user.setHead(rst.getString("head")); user.setRegTime(rst.getString("regTime")); user.setGender(rst.getInt("gender")); } } catch (SQLException e) { e.printStackTrace(); }finally { this.closeAll(conn, pst, rst); } return user; }
### 回答1: 搭建人脸识别的深度学习模型的步骤如下: 1. 准备数据:需要大量的人脸图像数据来训练模型。 2. 选择模型:可以使用已经训练好的模型,也可以自己设计模型,常用的模型有VGG、ResNet等。 3. 训练模型:使用数据集训练模型,并不断调整模型的参数以提高准确率。 4. 评估模型:使用测试数据评估模型的性能,并与其他模型进行比较。 5. 应用模型:将训练好的模型应用于实际场景,如人脸识别系统。 以上是搭建人脸识别的深度学习模型的大致流程。 ### 回答2: 搭建一个关于人脸识别的深度学习模型是一个较为复杂的任务,需要经过多个步骤来完成。下面是一个简要的流程: 1. 数据收集与预处理:首先,我们需要收集大量的人脸图像作为训练数据。这些图像可以包括来自不同角度、不同光照条件下的人脸图像。然后,对图像进行预处理,包括人脸检测、对齐和标准化等步骤,以确保人脸在统一的尺寸下进行训练和识别。 2. 构建深度学习模型:接下来,我们可以选择使用一种适合人脸识别任务的深度学习模型,如卷积神经网络(CNN)。通过在大量的训练数据上进行学习,模型可以从中学习到人脸的特征表示。 3. 训练模型:使用标记好的人脸图像数据集,我们可以将模型进行训练。训练的目标是最小化模型的损失函数,通过调整模型参数,使其能够准确地区分不同的人脸。 4. 评估模型性能:为了评估模型的性能,我们可以使用一组独立的测试数据集来计算模型的准确率、召回率等指标,以衡量模型的表现。 5. 部署模型:当模型训练完成且性能达到要求后,我们可以将其部署到实际场景中。例如,将模型应用于人脸识别门禁系统、人脸支付系统等。 总结起来,搭建一个关于人脸识别的深度学习模型需要进行数据收集与预处理、构建模型、训练模型、评估模型性能和部署模型等多个步骤,通过这些步骤可以构建一个准确且高效的人脸识别系统。 ### 回答3: 搭建一个关于人脸识别的深度学习模型需要以下几个步骤: 1. 数据收集:收集包含人脸图像的数据集。这可以是从互联网上下载的公开数据集,也可以是自己收集的并经过标记的私有数据集。 2. 数据预处理:对收集到的人脸图像数据进行预处理,包括人脸检测和图像对齐。人脸检测用于定位人脸在图像中的位置,图像对齐用于将人脸图像调整为统一的尺寸和方向。 3. 特征提取:使用卷积神经网络(CNN)对预处理后的图像进行特征提取。CNN可以从图像中学习到具有判别性的特征,例如边缘、纹理和形状。 4. 模型构建:构建深度学习模型,例如使用多层感知机(MLP)或卷积神经网络(CNN)进行分类或特征提取。可以使用常见的深度学习框架如TensorFlow或PyTorch来实现模型。 5. 模型训练:使用标记好的数据集对模型进行训练。训练过程中,通过最小化损失函数来优化模型参数,使其能够更准确地进行人脸识别。 6. 模型评估:使用未参与训练的测试集评估模型的性能。常见的评估指标包括准确率、召回率和F1得分。可以根据评估结果进行模型调整和改进。 7. 模型应用:将训练好的深度学习模型应用于实际场景中的人脸识别任务。可以通过实时视频流或静态图像来进行人脸识别,并输出相应的标识信息。 总的来说,搭建一个关于人脸识别的深度学习模型需要进行数据收集、预处理、特征提取、模型构建、训练、评估和应用等步骤。通过这些步骤,可以构建出一个准确、高效的人脸识别系统。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值