Golang implémente l'enregistrement et la connexion
À l'ère d'Internet, avec les progrès continus de la technologie Internet et la demande croissante d'informations de la part des gens, les fonctions d'enregistrement et de connexion des sites Web et des applications sont devenues de plus en plus courantes. Cet article expliquera comment utiliser le langage Golang pour implémenter la fonction d'enregistrement et de connexion.
1. Introduction à golang
golang est un langage de programmation développé par Google. Il présente les caractéristiques d'un traitement simultané efficace, d'un garbage collection automatique, d'un temps de compilation extrêmement faible, etc. caractéristiques des systèmes. Ces fonctionnalités font de Golang un très excellent langage côté serveur. Par conséquent, l’utiliser pour mettre en œuvre la fonction d’enregistrement et de connexion est un très bon choix.
2. Configuration de l'environnement
Pour utiliser Golang pour implémenter la fonction d'enregistrement et de connexion, vous devez d'abord installer le langage Golang dans l'environnement local. Avant l'installation, vous devez déterminer le type de système d'exploitation de votre ordinateur (Windows, Linux, Mac, etc.) et sélectionner la version Golang correspondante à télécharger et à installer.
Une fois l'installation terminée, vous pouvez saisir la commande suivante dans la ligne de commande pour vérifier si l'installation a réussi :
go version
Si le numéro de version de Golang est affiché, l'installation est réussie.
3. Implémentation de la fonction d'enregistrement
- Créer un dossier de projet
Créez un dossier nommé "login" pour placer les fichiers de ce projet. Créez deux dossiers dans ce dossier : contrôleur et modèle. Parmi eux, le contrôleur est utilisé pour placer le code du contrôleur de l'interface Web et le modèle est utilisé pour placer le code des opérations de base de données.
- Connexion à la base de données et création de table
Créez un fichier nommé "db.go" dans le dossier modèle, et écrivez-y le code suivant pour établir une connexion à la base de données :
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 }
Dans le code ci-dessus, un tiers est utilisé la bibliothèque "go-sql-driver/mysql" pour réaliser la connexion à la base de données. Dans le code, nous devons également définir certaines informations de base de la base de données, telles que le nom d'utilisateur, le mot de passe, l'adresse de l'hôte, le numéro de port, le nom de la base de données, etc.
Prochaine étape, nous devons créer un fichier nommé "user.sql" pour écrire l'instruction SQL permettant de créer la table utilisateur, qui contient des champs tels que l'ID utilisateur, le nom d'utilisateur et le mot de passe.
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;
En exécutant l'instruction SQL ci-dessus, la table utilisateur peut être créée dans la base de données.
- Écrire le code du contrôleur
Créez un fichier nommé "register.go" dans le dossier du contrôleur pour écrire le code du contrôleur pour l'interface d'enregistrement. Dans ce fichier, vous devez importer la bibliothèque tierce « net/http » et écrire le code suivant :
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)) }
Dans le code ci-dessus, nous déterminons d'abord si la méthode de requête est POST. S'il s'agit d'une requête POST, le nom d'utilisateur et le mot de passe sont obtenus, le mot de passe est crypté MD5 et le mot de passe et le nom d'utilisateur cryptés sont stockés dans la base de données.
A la fin du fichier, utilisez la fonction ioutil.ReadFile() pour lire un fichier nommé "register.html" et renvoyer le contenu du fichier au navigateur. De cette manière, le navigateur peut afficher notre interface d'inscription.
- Écriture de l'interface d'inscription
Créez un fichier nommé "register.html" dans le dossier de connexion pour écrire le code de la page d'inscription. Dans cette page, vous devez utiliser la balise

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Cet article explique les mécanismes d'importation des packages de Go: les importations nommées (par exemple, importation & quot; fmt & quot;) et les importations vierges (par exemple, importation _ & quot; fmt & quot;). Les importations nommées rendent le contenu du package accessible, tandis que les importations vierges ne font que l'exécuter t

Cet article explique la fonction Newflash () de Beego pour le transfert de données inter-pages dans les applications Web. Il se concentre sur l'utilisation de NewFlash () pour afficher les messages temporaires (succès, erreur, avertissement) entre les contrôleurs, en tirant parti du mécanisme de session. Limiter

Cet article détaille la conversion efficace de la requête MySQL Resulte en tranches de structure GO. Il met l'accent sur l'utilisation de la méthode de numérisation de la base de données / SQL pour des performances optimales, en évitant l'analyse manuelle. Meilleures pratiques pour la cartographie des champs struct à l'aide de balises DB et de robus

Cet article montre la création de simulations et de talons dans GO pour les tests unitaires. Il met l'accent sur l'utilisation des interfaces, fournit des exemples d'implémentations simulées et discute des meilleures pratiques telles que la tenue de simulations concentrées et l'utilisation de bibliothèques d'assertion. L'articl

Cet article explore les contraintes de type personnalisé de Go pour les génériques. Il détaille comment les interfaces définissent les exigences de type minimum pour les fonctions génériques, améliorant la sécurité du type et la réutilisabilité du code. L'article discute également des limitations et des meilleures pratiques

Cet article détaille la rédaction de fichiers efficace dans GO, en comparant OS.WriteFile (adapté aux petits fichiers) avec OS.OpenFile et Buffered Writes (optimal pour les fichiers volumineux). Il met l'accent sur la gestion robuste des erreurs, l'utilisation de différer et la vérification des erreurs spécifiques.

L'article traite des tests d'unité d'écriture dans GO, couvrant les meilleures pratiques, des techniques de moquerie et des outils pour une gestion efficace des tests.

Cet article explore l'utilisation d'outils de traçage pour analyser le flux d'exécution des applications GO. Il traite des techniques d'instrumentation manuelles et automatiques, de comparaison d'outils comme Jaeger, Zipkin et OpenTelelemetry, et mettant en évidence une visualisation efficace des données
