首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3.4+Django1.7+SQLite3实现增删改查

Python3.4+Django1.7+SQLite3实现增删改查

作者头像
Java学习123
发布2018-05-16 14:39:12
8350
发布2018-05-16 14:39:12
举报
文章被收录于专栏:Java学习123Java学习123

前2篇文章,散仙写了关于Django的入门安装,以及简单模拟数据库的MVC使用,那么本篇就来稍微深入下,来看看如何使用Django来实现一个增删改查的小例子: 

序列

名称

备注

1

win7

操作系统

2

开发工具

Pycharm

3

Python3.4

python版本

4

Django1.7

Django版本

5

SQLite

数据库

6

屌丝码农一枚

核心角色‍

通过本案例项目,能学到什么?  (1)表单post提交参数数据  (2)python对csrf的支持与应用  (3)增删改查的处理思路  (4)python的Api熟悉  (5)python里面重定向的使用  (6)模板文件的编写格式  (7)mvt模式的了解  (8)python隔行换色的实现  (9)python对象关系映射使用  先看几个案例的几个截图:  1,查询所有:  2,添加一条数据:  3,修改数据:  4,删除一条数据:  model里的代码: 

  1. from django.db import models      # Create your models here.         class Student(models.Model):       name=models.CharField(max_length=20)       age=models.IntegerField(max_length=3)         class Subject(models.Model):       student=models.ForeignKey(Student)       sub_name=models.CharField(max_length=20)       sub_num=models.IntegerField(default=0)

views里面的代码: 

  1. import builtins   from django.shortcuts import render,render_to_response   from django.http import HttpResponse,HttpResponseRedirect   from django.template.context import RequestContext      #包装csrf请求,避免django认为其实跨站攻击脚本   from django.views.decorators.csrf import csrf_exempt      import random   from.models import Student   # Create your views here.   from django.core.context_processors import csrf      def hello(request):       return HttpResponse("我是django的第一个例子!")         def myhtml(request):       return render_to_response('a.html',locals())         def bb(request):       return render(request,'bb.html')   #访问首页   def beginAdd(request):       return render_to_response('add.html')   #保存数据   @csrf_exempt   def add(request):      # c={}      id=request.POST['id']      name=request.POST['name']      age=request.POST['age']      st=Student()      if  len(id)  > 0 :          print("id不是null")          st.id=id;      st.age=age      st.name=name      st.save()      return HttpResponseRedirect("/q")      #查询所有   def query(request):       b=Student.objects.all()          #for  e in b:           #print(e.id,"   ",e.age,"   ",e.name)          return render_to_response('curd.html',{'data':b})   #显示一条数据   def showUid(request):       id=request.GET['id'];       bb=Student.objects.get(id=id)       return render_to_response('update.html',{'data':bb})   #删除数据   def delByID(request):       id=request.GET['id'];       bb=Student.objects.get(id=id)       bb.delete()       return HttpResponseRedirect("/q")      datas=[          {"id":"1","name":"华为"},       {"id":"2","name":"三星"},       {"id":"4","name":"Apple"},       {"id":"5","name":"中国"},       {"id":"6","name":"JAVA程序员"},       {"id":"7","name":"solr"},       {"id":"8","name":"hadoop编程"},       {"id":"9","name":"python"},      ]         def show(request):                 return render_to_response('data.html',{'datas':datas})

url里面的代码: 

  1. from django.conf.urls import patterns, include, url   from django.contrib import admin   #导入view定义的方法   from CurdWeb.views import hello,myhtml,bb,show,add,query,beginAdd,delByID,showUid      urlpatterns = patterns('',       # Examples:       # url(r'^$', 'Django项目.views.home', name='home'),       # url(r'^blog/', include('blog.urls')),          url(r'^admin/', include(admin.site.urls)),       #基于hellword的绑定       url(r'^hello/$',hello),          url(r'^myhtml/$',myhtml),       url(r'^cc/$',bb),       #url映射到view层,并获取展现数据       url(r'^show$',show),       #添加数据映射       url(r'^add$',add),       #查询所有数据的映射       url(r'^q$',query),       #访问添加首页的html       url(r'^index.html$',beginAdd),       #删除用户根据id       url(r'delete$',delByID),       #更新的方法,根据id       url(r'showid$',showUid)         )

html页面 

<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title>添加数据,提交form表单</title>  
</head>  
<body>  
  
  
  
  
<form action="/add" method="post">  
          <input name="id" type="hidden" value="" ><br/>  
请输入名字<input name="name" type="text" ><br/>  
请输入年龄<input name="age" type="text" ><br/>  
    <input type="submit" value="提交" >  
</form>  
  
  
</body>  
</html>
  1. <!DOCTYPE html>   <html>   <head lang="en">       <meta charset="UTF-8">       <title>数据展示平台</title>   </head>   <style>   body{       text-align: center;   }   #tt{        margin: 0 auto;   }   </style>   <body>      <table id="tt" border="2">   <tr> <td>用户编号</td>  <td>用户姓名</td> <td>用户年龄</td>   <td>操作</td>     </tr>   {%  for d in data %}   <tr {% if forloop.counter|divisibleby:"2"  %} style="background: gainsboro" {% else %} style="background: aquamarine"  {% endif %}  >  <td>{{ d.id }}</td> <td>{{ d.name }}</td> <td>{{ d.age }}</td><td>[url=/delete?id={{ d.id }}]删除[/url]  [url=/index.html]添加[/url]  [url=/showid?id={{ d.id }}]修改[/url] </td> </tr>   {% endfor %}      </table>   </body>   </html>
<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title>动态展示学生信息数据</title>  
</head>  
<body>  
<table style="color: green" border="2">  
<td>编号</td><td>名字</td>  
{% for m in datas %}  
   <tr>  
   <td>{{ m.id }}</td><td>{{ m.name }}</td>  
   </tr>  
{% endfor %}  
</table>  
</body>  
</html>
<!DOCTYPE html>  
<html>  
<head lang="en">  
    <meta charset="UTF-8">  
    <title>修改个人信息</title>  
</head>  
<body>  
  
  
<form action="/add" method="post" >  
        <input type="hidden" name="id"  value="{{ data.id }}" >  
    名字:<input name="name" type="text" value="{{ data.name  }}"><br/>  
    年龄:<input name="age" type="text" value="{{ data.age }}"><br/>  
          <input type="submit" value="保存"/>  
  
  
</form>  
  
</body>  
</html>
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档