Django基础-学院管理系统

1. 需求整理

在这里插入图片描述

2. 表结构设计

在这里插入图片描述
部分建表语句

use django;
show tables;

create table class(id int primary key auto_increment, title varchar(100));
desc class;
insert into class values(1,'class1');
insert into class values(2,'class1');
select * from class;

2. pycharm项目创建

2.1 环境配置

三步曲:

  1. 注释掉 # ‘django.middleware.csrf.CsrfViewMiddleware’;
  2. TEMPLATES 配置,例如:‘DIRS’: [BASE_DIR / ‘templates’]
  3. STATICFILES_DIRS配置:STATICFILES_DIRS = (
    os.path.join(BASE_DIR, ‘static’),
    )

2.2 逻辑代码

为了方便整理,将逻辑代码全放入到新建文件夹app01中,再从中导入所需代码即可。
url.py就变的简洁如下:

# from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('classes/', views.classes),
    path('add_class/', views.add_class),
]

先开始编写第一个逻辑代码 views.py

from django.shortcuts import render,redirect
import pymysql

def classes(request):
    conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='psy19941124', db='django', charset='utf8')
    cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
    cursor.execute("select id,title from class")
    class_list = cursor.fetchall()
    # conn.commit()
    cursor.close()
    conn.close()

    return render(request, 'classes.html', {'class_list': class_list})

在这里插入图片描述
class.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>班级列表</h1>
    <div>
        <!-- 引用外部的样式文件 -->
        <a href="/add_class/">添加</a>
    </div>
    <table>
        <thead>
        <tr>
            <th>ID</th>
            <th>班级名称</th>
        </tr>
        </thead>

    <tbody>
        {% for row in class_list %}
            <tr>
            <td>{{ row.id }}</td>
            <td>{{ row.title }}</td>
            </tr>
        {%  endfor %}
    </tbody>
  </table>
</body>
</html>

现在来实现点击‘添加’即可往数据库添加新的数据
views.py

def add_class(request):
    if request.method == 'GET':
        return render(request, 'add_class.html')
    else:
        print(request.POST)
        v = request.POST.get('title')

        conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1', charset='utf8')
        cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
        # cursor.execute("insert into class(title) values(%s)", v)
        cursor.execute("insert into class(title) values(%s)", [v, ])
        conn.commit()
        cursor.close()
        conn.close()
        return redirect('/classes/')

add_class.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>添加班级</h1>
        <form method="post" action="/add_class/">
            <p>班级名称: <input type="text" name="title"/></p>
            <input type="submit" value="提交"/>
        </form>
</body>
</html>

点击‘添加’,输入‘class2’效果
在这里插入图片描述

参考文献

Python开发【第十九篇】:Python操作MySQL - 武沛齐 - 博客园 https://www.cnblogs.com/wupeiqi/articles/5713330.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值