GO语言博客系统——(一、基础部分)_深夜学习家的博客-程序员宅基地_go 博客系统

技术标签: golang  go博客  

目录

前言

一、简单go web程序

1.简单程序

 2.注意点

二、路由

1.路由比较

2.请求路径正则

三、中间件

总结


前言

菜鸡自留地,如有错误请指正谢谢。


一、简单go web程序

1.简单程序

package main

import (
    "fmt"
    "net/http"
)

func handlerFunc(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, "<h1>Hello world</h1>")
}

func main() {
    http.HandleFunc("/", handlerFunc)
    http.ListenAndServe(":3000", nil)
}

 2.注意点

  • Go语言引入包的概念,一个可执行的Go程序都要有一个main包,在go run时main包函数作为程序入口。
  • net/http包时实现HTTP编程所使用的接口,其中http.ListenAndServe用以监听本地端口并提供服务,而http.HandleFunc是用来指定处理HTTP请求的函数。
  • http.HandleFunc的参数中,http.Request是用户的请求信息,http.ResponseWriter是返回给用户的响应。

二、路由

1.路由比较

  • http.ServeMux:不支持URL路径参数(不直观)、不支持路由命名(无法命名)、不支持请求方法过滤(无法区分get、post等请求方法)。

  • gorilla/mux:精准匹配、可命名、可请求方法过滤、可以获得参数

2.请求路径正则

router.HandleFunc("/hello/{id:[0-9]+}",helloworld)

三、中间件

统一对响应做出处理的,我们可以使用中间件来做。并且使用mux.Use()加载中间件。但是Mux会先匹配路由再处理中间件,所以需要注意这一点。


总结

基础部分简单介绍一些基础知识,对于博客开发需要注意的内容放在后面介绍。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42855815/article/details/121844198

智能推荐

java中协程使用_beyond的架构之旅的博客-程序员宅基地_java协程框架

java中协程使用背景实践结论扩展背景Java协程,大家做Java这么久估计也没有怎么听过Java协程的东西,但是经常有听到协程的概念。本片文章就java中具体使用协程给大家介绍下协程具体在java中的使用方式。看了很多java应用quasar框架实现协程的例子,但是很多写的驴头不对马嘴,所以这里自己写篇文章记录下。当我们在使用多线程的时候,如果存在长时间的I/O操作。这个时候线程一直处于阻塞状态,如果线程很多的时候,会存在很多线程处于空闲状态,造成了资源应用不彻底。相对的协程不一样了,在单线程中多

怎么修改java平台默认jdk_关于java:如何更改IntelliJ IDEA默认JDK?_weixin_39958248的博客-程序员宅基地

我使用IntelliJ IDEA作为我的开发环境,使用Maven作为依赖管理。 我经常在IDEA之外构建我的项目结构(目录,poms等),然后使用Import project from external model将项目导入IDEA。 这很好用,除了在我的poms中我指定maven-compiler-plugin应该使用JDK 1.6,当我导入时,IDEA通知我Language Level Cha...

MPB:上海巴斯德所崔杰组-RNA病毒组与生物信息学分析_刘永鑫Adam的博客-程序员宅基地

为进一步提高《微生物组实验手册》稿件质量,本项目新增大众评审环节。文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见。公众号格式显示略有问题,建议电脑端点击文末阅...

JWT鉴权_独行侠梦的博客-程序员宅基地

jwt是什么?JWTs是JSON对象的编码表示。JSON对象由零或多个名称/值对组成,其中名称为字符串,值为任意JSON值。JWT有助于在clear(例如在URL中)发送这样的信息,可以被...

1058 N的阶乘的长度_昨日明眸的博客-程序员宅基地

1058 N的阶乘的长度基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。Input输入N(1 Output输出N的阶乘的长度Input示例6Output示例3 一、任意数的长度公式:给一个

Fasm---Win32汇编学习3 _xyblack的博客-程序员宅基地

Fasm---Win32汇编学习3                                         第三课-完整的界面   在今天这节课程中,我们来写一个Windows的界面。 理论:    Windows程序中,在写图形界面时需要调用大量的标准 Windows GUI函数。其实这对于程序员和用户都是好事。对于用户,面对的是同一套标准的窗口,对这些窗口的操

随便推点

多目标排序在快手短视频推荐中的实践_文文学霸的博客-程序员宅基地

分享嘉宾:郑东博士快手 推荐算法技术总监编辑整理:于洋出品平台:DataFunTalk导读:快手是中国领先的短视频和直播社区,拥有超过3亿的DAU和丰富的社交数据。快手秉承的价值观是真实...

基于C/C++实现的简单学生信息管理系统_科科哥的博客-程序员宅基地

这是本人在学习了C/C++后,自己尝试写的一个小项目,该程序实现了对学生的学号姓名,年龄和学科成绩进行管理的一个小程序,具体功能实现了包括(1:添加学生信息 2:查看学生信息(分为按学号姓名以及查看全部学生信息)3:删除学生信息 4:修改学生信息),具体代码实现如下:#ifndef _STUDENTINFORMATIONSYSTEM_H_#define _STUDENTINFORMA...

Android服务之Service(其二)关于AIDL进程间通信_dhvkvve3729的博客-程序员宅基地

上一节中我们讲解了本地Service,这一节主要是讲解远程Service,这里涉及到了AIDL。好吧,老规矩,先来点基础知识:一.基础知识AIDL的作用 在Android平台,每个应用程序App都运行在自己的进程空间。通常一 个进程不能访问另一个进程的内存空间(一个应用不能访问另一个应用),如果想沟通,需要将对象分解成操作系统可以理解的基本单元,Android提供了...

你们有没有做 MySQL 读写分离?如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?_JAVA拾贝的博客-程序员宅基地

面试官心理分析高并发这个阶段,肯定是需要做读写分离的,啥意思?因为实际上大部分的互联网公司,一些网站,或者是 app,其实都是读多写少。所以针对这个情况,就是写一个主库,但是主库挂多个从库,然后从多个从库来读,那不就可以支撑更高的读并发压力了吗?面试题剖析如何实现 MySQL 的读写分离?其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去。MySQL 主从复制原理的是啥?主库将变更写入 binlog 日

PostgreSQL源码结构_XMM1990的博客-程序员宅基地

PostgreSQL的使用形态PostgreSQL采用C/S(客户机/服务器)模式结构。应用层通过INET或者Unix Socket利用既定的协议与数据库服务器进行通信。另外,还有一种‘Standalone Backend’使用的方式, 虽然通过这种方式也可以启动服务器,但是一般只在数据库的初始化(PostgreSQL的cluster的初始化,相当于其他数据库的inst

博客园第一篇——SDL2+FFmpeg 制作简单播放器&同步_weixin_30650859的博客-程序员宅基地

SDL 2.0.3; FFmpeg 20140402 shared;部分来自http://blog.csdn.net/jiqiujia/article/details/22449131的第二个例子,修正了一些问题。原来的代码在第555行,SDL_Delay(50) 应该替换为 av_free_packet(&amp;packet),这样既解决了迟滞问题还解决了一个坑爹的内存泄露问题。(我才不会告诉...