包含标签 golang articles

golang gorm处理SQL数据

Go-ORM 和 GORM是golang下常用的两个针对关系型数据库封装的库文件,这个类似于python 下的SQLAlchemy模块。其简化了再在代码里写SQL语句的过程。本篇就结合golang + gorm + sqlite实现一个简单的web api操作。操作之前,可以先使用如下命令安装gorm模块。 1go get……

Continue reading

golang+gin+mysql构建RESTful API

gin是一个简单的golang http框架,其性能比较好。mysql是比较常见的数据库,两都结合起来可以快速构建一个http api server。 一、安装依赖 安装gin和golang mysql driver,如下: 1$ go get "github.com/go-sql-driver/mysql" 2$ go get "github.com/gin-gonic/gin" 二、创建测试用的数据库 安装完mysql-server包后,启动并配……

Continue reading

golang创建RESTful JSON API

一、创建基础http server 使用golang的net/http模块,可以很容易的创建一个http server服务器,如下: 1// from www.361way.com 运维之路 2package main 3import ( 4 "fmt" 5 "html" 6 "log" 7 "net/http" 8) 9func main() { 10 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { 11 fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) 12 }) 13 log.Fatal(http.ListenAndServe(":8080", nil)) 14} 使用go run 运维该代码时,可以通过 curl http://127.0.0.1:8080 访问到该web server 。 二、带路由的http server 官方提……

Continue reading

golang之操作sqlite

一、创建测试表 SQL语句如下: 1CREATE TABLE userinfo( 2 uid INTEGER PRIMARY KEY AUTOINCREMENT, 3 username TEXT NOT NULL, 4 departname TEXT NOT NULL, 5 created TEXT 6); 二、golang操作SQLite 具体语句如下: 1package main 2import ( 3 "database/sql" 4 "fmt" 5 _ "github.com/mattn/go-sqlite3" 6) 7func main() { 8 db, err := sql.Open("sqlite3", "./foo.db") 9 checkErr(err) 10 //插入数据 11 stmt, err := db.Prepare("INSERT INTO userinfo(username, departname, created) values(?,?,?)") 12 checkErr(err) 13 res, err := stmt.Exec("361way", "研发部", "2019-03-06") 14 checkErr(err) 15 id, err := res.LastInsertId() 16 checkErr(err) 17 fmt.Println(id) 18 //更新数……

Continue reading

golang ParseForm post数据

golang的http.Request方法中有 r.Form and r.PostForm两种请求方式。本篇就结合相关示例给出下使用golang的http模块,结合页面post方法,获取相关数据。该例子需创建两个文件form.html 和 main.go。 一、form.html 文件内容如下: <pre data-language="HTML">```markup <html> <head> <meta charset="UTF-8"……

Continue reading

gorilla mux路由创建

使用golang可以很容易的创建restful格式的web程序。对于比较简单的应用,使用”net/http”模块多写几个函数就可以实现路由了,不过对于稍复杂一点的应用,该模块就显的不友好,这时候可以使用gorilla/mux或httproute模块实现路由,gin web框架使用的……

Continue reading

golang几种post请求方式

golang的net/http包既可以实现http server服务,也可以通过该包向http服务器发送post或get等模式的请求。上次总结过一篇 golang post和get发送请求 ,本篇基于上一篇做一些更细节场景的总结。 一、直接get请求 get请求可以直接http.Get方法,非常简单。……

Continue reading

golang读写常见的文件类型

一、读写xml文件 golang的”encoding/xml”模块有 xml.Unmarshal() 方法和 xml.Marshal() 方法。前者用于格式化读取 xml 文件,后者用于格式化写 xml 文件。操作之前我们先准备一个测试文件notes.xml,内容如下: <pre data-language="XML">```markup <note> <to>Admin</to> <from>www.361way.com</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> #### 1、 xml.Unmarshal()读 xml 代码如下: ```go package main import ( "encoding/xml" "fmt"……

Continue reading

golang中文字符编码转换

golang默认使用的字符是UTF8,不过很多网页使用的是gbk编码,这时候就需要通过编码进行转换。具体代码如下: 1package main 2import "golang.org/x/text/encoding/simplifiedchinese" 3type Charset string 4const ( 5 UTF8 = Charset("UTF-8") 6 GB18030 = Charset("GB18030") 7) 8func ConvertByte2String(byte []byte, charset Charset) string { 9 var str string 10 switch charset { 11 case GB18030: 12 var decodeBytes,_=simplifiedchinese.GB18030.NewDecoder().Bytes(byte) 13 str= string(decodeBytes) 14 case UTF8: 15 fallthrough 16 default: 17 str = string(byte) 18 } 19 return str 20}……

Continue reading

golang sync包互斥锁和读写锁的使用

golang sync包里提供了 Locker接口、互斥锁 Mutex、读写锁 RWMutex用于处理并发过程中可能出现同时两个或多个协程(或线程)读或写同一个变量的情况。 一、为什么需要锁 在并发的情况下,多个线程或协程同时去修改一个变量。使用锁能保证在某一时间点内,只有一个协程或线程修改这一变量,……

Continue reading

Latest articles

Categories

Tags

ACL AD AES AI AWS Ansible Atlassian Azure BMC Blockchain Brocade CDH5 CL210 Cobbler Confd C语言 DDOS DISTINCT DNS Duckdb EKS ELK GCP Ghost Git Glusterfs Go Godaddy Grafana HBA HCIE Hotspot HttpWatch IBM IIS IOS InfluxDB Ingress InnoDB JavaScript Jinja2 KVM Keepalived Mplayer MySQLdb Netlify OpenResty PM PostgreSQL QoS RH318 RH442 RHCA RHCE RHEV RSA SRE SecureCRT Statuscode SublimeText2 TC Telecom Tencentcloud VBA aira2 alpine android anpic apache apm apparmor appfog apr apt-get aria2 array atop audit awk awstats axel backdoor backup bamboo bash bat benchmark bigdata bin bind bitwise book bootstrap bsd c1000 cache capistrano catlog centos centos7 chatops chattr check_mk checkinstall cisco clearall clickhouse cloud-desktop cmdb cms collectd comm compress conver corosync cpu crontab crunchbang css curl date decode dell desktop devops df dhcp diff diskpart django docker dos2unix dpkg drupal etcd excel fail2ban fastcgi fdisk fiddler find firewalld flask flvtool ftp function fuser geek gin github gitlab glances golang google gooupadd graphviz gravatra grep grub2 hadoop haproxy hardware heartbeat helm hexdump hhvm history html http/html/web httplogs https huawei huaweicloud hugo icmp iconv ifconfig inotify iopp ipmitool iptables iredmail iscsi isito it-news java jdk jenkins jira join joomla k3s k8s kdump kernel kingate lamp last leetcode lib light-http linux linux高级篇 ln ls lsi lsof lvm lvs mac mail man mark markdown matplotlib maven memcached microservice mimikatz mkdocs mkpasswd mmonit mod_jk mongodb monit monitor mono moodle mosh mount mpm mrtg mtr my.cnf mysql mysqlbinlog mysqld_multi mysqldump mysqlhotcopy nagios nc nethogs nexus nfs nginx nmon nocatlog node.js nrpe ntfs ntop ntp obs ocr open-falcon openbox opencv openldap openssl openstack oracle oswatch paas pacemaker pam pandas parted pcp pcre pdf percona perl pexpect pgrep php php-fpm ping plsql develope postfix powershell prettify proc prometheus puppeteer pushd pwgen pxe pyecharts python python模块 radmin raid rdesktop read redhat redis redmine regex rh134 rhel7 rhel8 rm rman rootkit route rpm rpmforge rrdtool rsync rsyslog safe saltstack samba scapy screen sed selenium selinux seo seq session set shc sheepdog shell shopt sitemap skydns smokeping snffier snmp socket soft sort spider sql sqlserver squid ss ssh sshpass strace strings su sudo suse svn sysbench syslog-ng sysstat systemd t tar tcpcopy tcpdump tech telnet tengine test testlink threads time tmux tomcat touch tr tsar twisted ubuntu udev ulimit unix unixbench user-agent useradd varnish vbs vercel vi vim visudo vmstat vmware vnc voice vpn vscode vsftp vsftpd vue watchdog web webcam webistrano wget wiki windows wol wordpress workshop wsl x-windows xampp xcache xmllint xtrabackup yule yum zabbix zeromq zip zonetime zookeeper 下载工具 云主机 云原生 代理 加密 古意 吐槽 圈里圈外 娱乐 字符串函数 安全 平台架构 意林 推理 提权 故事汇 故障案例 数据结构 每日看点 民国史 生活 科学记录 站长管理工具 算法 管理 网站架构 翻墙 股票 行业 诗韵 负载均衡 远程管理 面试题

Links

Meta