Django+Mysql的简易Demo

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连接进行配置,迁移数据库文件等,此处不作详细说明。

总结:第一次写博客,学无止境,要学的东西还很多呀,先做个简单记录。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值