1、創建一個html文件用於簡單的網頁注冊demo
# register.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注冊</title>
</head>
<body>
<!--表單域,action用於將獲取的到信息提交到后台地址-->
<form action="save" method="get">
<span>
用戶:<input type="text" name="username">
</span>
<br>
<span>
密碼:<input type="password" name="password">
</span>
<br>
<span>
<input type="submit" name="submit1" value="注冊">
</span>
</form>
</body>
</html>
2、創建一個html文件用於簡單的網頁登錄demo
# login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登錄</title>
</head>
<body>
<form action="query" method="get">
<span>
用戶:<input type="text" name="username">
</span>
<br>
<span>
密碼:<input type="password" name="password">
</span>
<br>
<span>
<input type="submit" name="submit1" value="登錄">
</span>
</form>
</body>
</html>
3、創建一個Django項目,並將剛才的兩個html文件放入template模板文件夾中
4、打開Django項目下默認生成的urls.py文件,進行一些業務功能的編輯
## urls.py
"""Django01 URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.shortcuts import render
from django.shortcuts import HttpResponse
import pymysql
#登錄頁面
def login(request):
#指定要訪問的頁面,render的功能:講請求的頁面結果提交給客戶端
return render(request,'login.html')
#注冊頁面
def register(request):
return render(request,'register.html')
#定義一個函數,用來保存注冊的數據
def save(request):
has_regiter = 0#用來記錄當前賬號是否已存在,0:不存在 1:已存在
a = request.GET#獲取get()請求
#print(a)
#通過get()請求獲取前段提交的數據
userName = a.get('username')
passWord = a.get('password')
#print(userName,passWord)
#連接數據庫
db = pymysql.connect('127.0.0.1','root','root','db2')
#創建游標
cursor = db.cursor()
#SQL語句
sql1 = 'select * from user1'
#執行SQL語句
cursor.execute(sql1)
#查詢到所有的數據存儲到all_users中
all_users = cursor.fetchall()
i = 0
while i < len(all_users):
if userName in all_users[i]:
##表示該賬號已經存在
has_regiter = 1
i += 1
if has_regiter == 0:
# 將用戶名與密碼插入到數據庫中
sql2 = 'insert into user1(username,password) values(%s,%s)'
cursor.execute(sql2,(userName,passWord))
db.commit()
cursor.close()
db.close()
return HttpResponse('注冊成功')
else:
cursor.close()
db.close()
return HttpResponse('該賬號已存在')
def query(request):
a = request.GET
userName = a.get('username')
passWord = a.get('password')
user_tup = (userName,passWord)
db = pymysql.connect('127.0.0.1','root','root','db2')
cursor = db.cursor()
sql = 'select * from user1'
cursor.execute(sql)
all_users = cursor.fetchall()
cursor.close()
db.close()
has_user = 0
i = 0
while i < len(all_users):
if user_tup == all_users[i]:
has_user = 1
i += 1
if has_user == 1:
return HttpResponse('登錄成功')
else:
return HttpResponse('用戶名或密碼有誤')
urlpatterns = [
path('admin/', admin.site.urls),#系統默認創建的
path('login/',login),#用於打開登錄頁面
path('register/',register),#用於打開注冊頁面
path('register/save',save),#輸入用戶名密碼后交給后台save函數處理
path('login/query',query)#輸入用戶名密碼后交給后台query函數處理
]
5、運行整個Django項目,訪問相應的url
F:\item\Django01>python manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessi
ons.
Run 'python manage.py migrate' to apply them.
December 03, 2019 - 14:13:04
Django version 2.2.1, using settings 'Django01.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
6.數據庫創建
mysql> create database db2;
Query OK, 1 row affected (0.00 sec)
mysql> use db2;
Database changed
mysql> create table user1(username char(10),password char(10));
Query OK, 0 rows affected (0.27 sec)
mysql> insert into user1(username,password) values('abc', '123');
Query OK, 1 row affected (0.04 sec)
mysql>
查看
7.注冊用戶
http://127.0.0.1:8000/register/
查看數據庫