zoukankan      html  css  js  c++  java
  • django 下操作数据库中数据

    Django 下在客服端下操作数据库表中数据

    数据的操作无非就是对得到的数据进行增删改查,取出表中的数据用的是pymysql模块,在业务逻辑中为了防止重复代码首先要对pymysql进行封装。这里我选择在外部拼接出sql语句作为参数传入:

    class my_pymysql:
        def __init__(self):
        #通过__init__来生成链接对象和游标对象,并指定取出的数据是以字典的形式取出,取出多条数据,以列表套字典的形式给出 self.conn
    = pymysql.connect(host='127.0.0.1',user='root',password='123',database='db3',charset='utf8') self.cursor = self.conn.cursor(cursor=pymysql.cursors.DictCursor)   #将pymyaql增删改查的方法封装成函数,方便对数据进=进行操作 def get_one(self,sql,id): self.cursor.execute(sql,id) self.conn.commit() return self.cursor.fetchone() def get_all(self,sql): self.cursor.execute(sql) self.conn.commit() return self.cursor.fetchall() def remove(self,sql,id): self.cursor.execute(sql,id) self.conn.commit() return def add(self,sql,name): self.cursor.execute(sql,name) self.conn.commit() return def update(self,sql,*args): self.cursor.execute(sql,args) self.conn.commit() return

    本次分别对两张表的数据进行操作,将数据取出后,通过模板渲染将数据和html融合我们在客户端通过去我们设置的按钮和我们通过jq绑定的触发事件来与后台形成交互,完成数据相关的操作。

    建立好正确的映射关系:

    urlpatterns = [
        url(r'^admin/', admin.site.urls),
        url(r'^classes/', classes),
        url(r'^add_class/', add_class),
        url(r'^del_class/', del_class),
        url(r'^update_class/', update_class),
        url(r'^teachers/', teachers),
        url(r'^add_teacher/',add_teacher),
        url(r'^del_teacher/', del_teacher),
        url(r'^update_teacher/', update_teacher),
        url(r'^d_add_teacher/', d_add_teacher),
        url(r'^d_add_class/', d_add_class),
    ]

    完成数据操作有两种方式,1 url方式 2 用ajxa 模态框 

    用url 完成需要跳转页面,而模态框 不用跳转页面,在不刷新页面的情况下,与后台进行交互,现在使用的最多的就是这个。

        $('#tijiao').click(function () {
            $.ajax({
                type:'post',
                url:'/d_add_class/',
                data:{'classname':$('#classname').val()},
                success:function (res) {
                    if(res == '添加成功'){
                        alert('完事了');
                        window.location.href = '/classes/'
                    }else{
                        alert('添加失败');
                        $('#error').text(data)
                    }
                }
            })
        })

    删除数据时的弹出框确认,原理是,当选择删除时,如果我们点击确定删除,就会向后台发出请求。如果我们选择,取消就会拦截向后台请求交互的命令

    并回到请求页面。

    <a href="/del_class/?id={{ item.id }}" onclick="return del();">删除</a>
    <script type="text/javascript">
        function del (){
            res = window.confirm('确定要删除吗');
            if (res == false){
                return false
        }
    }
    </script>

    书写时注意小事项:前后台交互时,映射的关键名必须对应好不能有错,在数据操作完成后需要做模板的时候要加上.html后缀,不然会找bug找到烦死。

    传参时,位置的形参一定要定位好。

  • 相关阅读:
    没有插件的sublime编辑器是没有灵魂的
    原生JS简单的无缝自动轮播
    自学前端的日子,记录我的秃头之旅
    简洁快速的数组去重
    最困难的是带着自己的选择生活下去
    css画图那些事
    css3画图那些事(三角形、圆形、梯形等)
    SVN那些事
    关于使用JQ scrollTop方法进行滚动定位
    linux下mysql出现Access denied for user 'root'@'localhost' (using password: YES)解决方法
  • 原文地址:https://www.cnblogs.com/1624413646hxy/p/11166883.html
Copyright © 2011-2022 走看看