In the Internet era, with the continuous advancement of Internet technology and people's increasing demand for information, the registration and login functions of websites and APPs have become more and more common. This article will introduce how to use golang language to implement the registration and login function.
1. Introduction to golang
Golang is a programming language developed by Google. It has the characteristics of efficient concurrent processing, automatic garbage collection, and extremely low compilation time. It has natural Concurrency capabilities and features suitable for large-scale systems. These features make golang a very excellent server-side language. Therefore, using it to implement the registration and login function is a very good choice.
2. Environment setup
To use golang to implement the registration and login function, you first need to install the golang language in the local environment. Before installation, you need to determine the operating system type of your computer (Windows, Linux, Mac, etc.), and select the corresponding golang version to download and install.
After the installation is completed, you can enter the following command on the command line to check whether the installation is successful:
go version
If the version number of golang is displayed, the installation is successful.
3. Registration function implementation
Create a folder named "login" to place this project document. Create two folders in this folder: controller and model. Among them, controller is used to place the controller code of the Web interface, and model is used to place the code of database operations.
Create a file named "db.go" in the model folder, and write the following code in it to establish a database connection :
package model import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) const ( USERNAME = "root" PASSWORD = "" NETWORK = "tcp" SERVER = "localhost" PORT = 3306 DATABASE = "login_system" ) func DbConn() (db *sql.DB) { dbDriver := "mysql" dbUser := USERNAME dbPass := PASSWORD dbName := DATABASE db, err := sql.Open(dbDriver, dbUser+":"+dbPass+"@tcp("+SERVER+":"+strconv.Itoa(PORT)+")/"+dbName) if err != nil { fmt.Println("无法连接数据库:", err) } else { fmt.Println("成功连接数据库!") } return db }
In the above code, the third-party library "go-sql-driver/mysql" is used to realize the database connection. In the code, we also need to set some basic information of the database, such as user name, password, host address, port number, database name, etc.
Next step, we need to create a file named "user.sql" to write the SQL statement to create the user table, which contains fields such as user ID, user name and password.
CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(20) NOT NULL, `password` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
By executing the above SQL statement, the user table can be created in the database.
Create a file named "register.go" in the controller folder to write the controller code for the registration interface. In this file, you need to import the third-party library "net/http" and write the following code:
package controller import ( "crypto/md5" "database/sql" "encoding/hex" "fmt" "io/ioutil" "net/http" "server/model" ) func Register(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { username := r.FormValue("username") password := r.FormValue("password") // 密码加密 h := md5.New() h.Write([]byte(password)) password = hex.EncodeToString(h.Sum(nil)) // 数据库操作 db := model.DbConn() defer db.Close() stmt, err := db.Prepare("INSERT INTO user(username, password) VALUES (?, ?)") if err != nil { fmt.Println("SQL语句执行失败:", err) return } _, err = stmt.Exec(username, password) if err != nil { fmt.Println("用户注册失败:", err) return } fmt.Println("用户注册成功!") } // 返回页面内容 data, err := ioutil.ReadFile("register.html") if err != nil { fmt.Println("读取文件失败:", err) return } w.Write([]byte(data)) }
In the above code, we first determine whether the request method is POST. If it is a POST request, the user name and password are obtained, the password is MD5 encrypted, and the encrypted password and user name are stored in the database.
At the end of the file, use the ioutil.ReadFile() function to read a file named "register.html" and return the content of the file to the browser. In this way, the browser can display our registration interface.
Create a file named "register.html" in the login folder to write the code for the registration page. In this page, you need to use the