更多Go内容请见: https://blog.youkuaiyun.com/weixin_39777626/article/details/85066750
Web应用设计
论坛功能:
- 用户登录
- 发帖
- 回帖
web应用的一般工作流程:
Web应用的各个组成部分
- 多路复用器
- 处理器
- 模板引擎
- 模板
- 数据库
数据库
一、Web应用数据模型
- User——用户信息
- Session——用户当前的登陆会话
- Thread——帖子
- Post——回帖
二、数据存储系统
三、安装PostgreSQL
一、Windows
下载
下载完成后,运行.exe文件,然后按照指示进行安装
二、Linux
其他系统请参考
- Red Hat family Linux (including CentOS/Fedora/Scientific/Oracle
variants) - Debian GNU/Linux and
derivatives - Ubuntu Linux and
derivatives - SuSE and OpenSuSE
- Other Linux
源代码
各文件、函数及其功能
main.go
main()
index()
生成HTML
将HTML写入ResponseWriter
route_auth.go
authenticate()
身份验证
返回cookie
util.go
session()
检查登录状态
generateHTML()
对给定的模板文件进行语法分析
data.go
init()
数据库连接池指针
数据库查询操作
threads.go
Threads()
查询所有帖子
返回给index()
NumReplies()
连接数据库
执行SQL查询
layout.html
public.navbar.html
index.html
setup.sql
Web应用运作流程
- 客户端向服务器发送请求
- 多路复用器接收请求,并将其重定向至正确的处理器
- 处理器对请求进行处理
- 处理器与数据库连接,并执行相应的操作
- 处理器调用模板引擎,传递数据
- 模板引擎对模板文件进行语法分析、创建相应的模板,并与处理器传递的数据合并合成最终的HTML
- 生成HTML(响应的一部分)回传至客户端
更多Go内容请见: https://blog.youkuaiyun.com/weixin_39777626/article/details/85066750