1.数据库设计和django链接mysql数据库
1.goods表用来存放商品信息
image2.user表格用来存放用户信息
image3.cart表用来存放购物信息
image4.sort表存放商品分类
image5.django链接mysql数据库
在文件目录中找到settings.py文件,将databases的花括号中的django.db.backends.sqlite3 改为django.db.backends.mysql 。密码PASSWORD一栏加上自己设置的MySQL的密码 , NAME 一栏是建立的数据库的名字,USER一栏是创建数据库的用户名,MySQL默认为root。核心代码如下:
DATABASES ={
'default': {
#链接自己的mysql
'ENGINE': 'django.db.backends.mysql',
'NAME': "second_school",
'USER': 'root',
'PASSWORD': '123456',
'HOST': 'localhost',
'PORT': 3306,
}
}
2.反向生成model类
利用Django自带的功能反向生成model类,代码如下:
python manage.py inspectdb
把生成的模板导入app,代码如下,也可以黏贴过来
python manage.py inspectdb > app/models.py
中间有一些细节我就不写了自行百度
3.登录页面后台
登录页面用了ajax,views部分代码:写ajax必须写@csrf_exempt这个是防止跨域攻击用的
@csrf_exempt
def login(request):
flag = 0
user = User()
if request.method == 'POST':
user_email = request.POST.get('email')
user_password = request.POST.get('password')
if user_email == 'supper@qq.com' and user_password == '123456':
flag = 5
return HttpResponse(json.dumps(flag))
else:
try:
user = User.objects.get(email=user_email)
print(user.__str__())
except Exception as e:
print(e.__repr__())
flag = -1
if user is None: # 用户名不存在
return HttpResponse(json.dumps(flag))
if user.password == user_password: # 密码相等,登录成功
flag = 1
request.session['nick_name'] = user.nick_name
request.session['userid'] = user.id
else: # 密码错误
flag = 2
return HttpResponse(json.dumps(flag))
ajax部分代码
function login() {
if ($("#email").val() == "") {
layer.msg("请输入邮箱");
return;
}
if ($("#password").val() == "") {
layer.msg("请输入密码");
return;
}
$.ajax({
type: "POST",
url: "login",
data: {"email": $("#email").val(), "password": $("#password").val()},
dataType: "json",
success: function (data) {
console.log(data);
if (data == 0) {
layer.msg("请先注册");
}
else if (data == 2) {
layer.msg("密码错误");
}
else if (data == 5) {
layer.msg('超级管理员登陆', {
offset: ['50%'],
time: 2000 //2秒关闭(如果不配置,默认是3秒)
}, function () {
location.href = "admin/goods";
});
}
else if (data == 1) {
layer.msg('登录成功', {
offset: ['50%'],
time: 2000 //2秒关闭(如果不配置,默认是3秒)
}, function () {
location.href = "index";
});
}
},
error: function () {
layer.msg("发生未知错误");
}
});
}
4.注册页面后台
def register(request):
flag = ""
if request.method == 'POST':
username = request.POST['username']
email = request.POST['email']
password1 = request.POST['password1']
password2 = request.POST['password2']
if username == "":
flag = "请输入用户名 "
else:
if email == "":
flag = "必须输入邮箱 "
else:
if password1 == "":
flag = "请输入密码 "
return render(request, 'register.html', {"flag": flag})
else:
if password2 == "":
flag = "请再次输入密码 "
return render(request, 'register.html', {"flag": flag})
else:
if password1 == password2:
flag = ""
twz = User()
twz.nick_name = username
twz.email = email
twz.password = password1
try:
twz.save()
return HttpResponseRedirect("login_page")
except Exception:
print(Exception)
else:
flag = "两次密码输入不一致"
return render(request, 'register.html', {"flag": flag})
今天先到这里明天继续更新
网友评论