Django+Mysql的简易Demo
实例内容:通过将前端页面数据提交到数据库,从数据库取出数据展示到前端页面,实现增删改查功能。
环境:win10+pycham3.7.3+mysql8.0
配置url映射
urls.py
from django.contrib import admin
from django.urls import path
from Myapp.views import*
urlpatterns = [
# path('admin/', admin.site.urls),
path(r'login/',login),
path(r'money_info/',money_info),
path(r'money_info/add_info/',add_info),
path(r'add_info/',add_info),
path(r'del_info/',del_info),
path(r'update_info/',update_info),
]
创建视图函数
views.py
from django.shortcuts import render,redirect
from .models import All_people_info
from Myapp import models
# Create your views here.
# 进入登陆界面
def login(request):
if request.method == "GET":
return render(request,'login.html')
else:
u = request.POST.get('user')
p = request.POST.get('pwd')
if u =='root'and p == '123123':
return redirect('/money_info/')
else:
return render(request,'login.html')
# 进入信息界面
def money_info(request):
if request.method == 'POST':
search = request.POST.get('search')
models.All_people_info.objects.filter(name = search)
else:
money_info_list = All_people_info.objects.all()
return render(request,'money_info.html',{'money_info':money_info_list})
# 添加信息后跳转到信息界面
def add_info(request):
if request.method == 'POST':
name = request.POST.get('name')
money = request.POST.get('money')
body = request.POST.get('body')
models.All_people_info.objects.create(name = name,money = money,body = body)
return redirect('/money_info/')
else:
return render(request,'add_info.html')
# 删除信息后跳转到信息界面
def del_info(request):
id = request.GET.get('id')
models.All_people_info.objects.filter(id = id).delete()
return redirect('/money_info/')
# 修改信息后跳转到信息界面
def update_info(request):
if request.method == 'POST':
id = request.POST.get('id')
name = request.POST.get('name')
money = request.POST.get('money')
body = request.POST.get('body')
models.All_people_info.objects.filter(id=id).update(name = name,money = money,body = body)
models.All_people_info.objects.filter(id=id)
return redirect('/money_info/')
else:
id = request.GET.get('id')
# name = request.GET.get('name')
# 此处获取到的name的值是None(???)
return render(request, 'update_info.html', {
'id': id
})
使用django的ORM机制,使类和数据库里的表同步。
modles.py
from django.db import models
# Create your models here.
class All_people_info(models.Model):
id = models.AutoField(primary_key = True)
name = models.CharField(max_length = 20)
money = models.IntegerField()
body = models.CharField(max_length = 300)
登录界面
login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录界面</title>
</head>
<body>
<center>
<h1 style="font-size: 25px">用户登录</h1>
<form method="POST" action="/login/">
<p><input type="root" name="user" placeholder="用户名"/></p>
<p><input type="password" name="pwd" placeholder="密码"/></p>
<p><input type="submit" value="登录"/></p>
</form>
</center>
</body>
</html>
信息界面
money_info.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>信息界面</title>
</head>
<body>
<h3>信息界面</h3>
<table border="1">
<thead>
<tr>
<th>名字</th>
<th>金额</th>
<th>备注</th>
<th>编辑</th>
<th>操作</th>
</tr>
</thead>
<p><a href="add_info/">添加</a></p>
<p><input type="search" name="search" placeholder="搜索" > <input type="submit" value="确定"/></p>
<tbody>
{% for row in money_info %}
<tr>
<td style="display: none">{{ row.id }}</td>
<td><a>{{ row.name }}</a></td>
<td><a>{{ row.money }}</a></td>
<td><a>{{ row.body }}</a></td>
<td><a href="/update_info/?id={{ row.id }}">编辑</a></td>
<td><a href="/del_info/?id={{ row.id }}">删除</a></td>
</tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
添加信息界面
add_info.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加信息</title>
</head>
<body>
<h1 style="font-size: 25px">添加信息</h1>
<form method="POST" action="/add_info/">
<p style="font-size: 15px">名字:<input type="name" name="name" placeholder=""/></p>
<p style="font-size: 15px">金额:<input type="money" name="money" placeholder=""/></p>
<p style="font-size: 15px">备注:<input type="body" name="body" placeholder=""/></p>
<p><input type="submit" value="添加"/></p>
</form>
</body>
</html>
修改信息界面
update_info.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>个人信息界面</title>
</head>
<body>
<h1 style="font-size: 25px">个人信息</h1>
<form method="POST" action="/update_info/">
<p><input style="display: none" type="text" name = "id" value="{{ id }}"/></p>
<p><input type="name" name="name" placeholder="名字"/></p>
<p><input type="money" name="money" placeholder="金额"/></p>
<p><input type="body" name="body" placeholder="备注"/></p>
<p><input type="submit" value="提交"/></p>
</form>
</body>
</html>
以上就完成了一个简单的Demo(因为对前端知识不熟悉,前端页面只是做了个简单的界面显示)。
温馨提示:以上还需对settings进行配置,对mysql连接进行配置,迁移数据库文件等,此处不作详细说明。
总结:第一次写博客,学无止境,要学的东西还很多呀,先做个简单记录。