web开发第五课信息存储到数据库

来源:互联网 发布:淘宝卖家怎么看运费险 编辑:程序博客网 时间:2024/05/21 08:54

修改urls.py

首先要把之前的url路由修改

urlpatterns = [    url(r'^admin/', admin.site.urls),    url(r'^student$', views.show_all_students),    url(r'^showadd_project$',views.showadd_project),]+ static("/s",document_root="./static")
然后把views.py中的studentTable删掉,因为不存储在内存中,而是存储在数据库中

# Create your views here.from django.http import HttpResponsestudentTable = {        'zhangchong':{            'loginname':'zhangchong',            'name':u'张冲',            'age': 23,        },    'lisi':{        'loginname':'lisi',        'name':u'李四',        'age': 25,    },    'xudandan':{        'loginname':'xudandan',        'name':u'',        'age':23    },}
先增加数据,先把course实例化一个对象

def showadd_course(request):    studentList =[]    #如果接受的请求中有name,就需要添加课程信息到数据库中    if 'name' in request.GET:        name = request.GET['name']        desc = request.GET['desc']        displayidx = int(request.GET['displayidx'])         #注意数据库里面添加记录的方法,是实例化Model,传入字段参数值        #最后调用save        course=Course(name=name,desc=desc,displayidx=displayidx)        course.save()

先用Course类实例化一个对象,实例化的参数就是表里面的字段name,desc,displayidx产生一个实例对象project,然后对这个实例对象course调用save方法.

Django在数据库里面添加记录的方法一

实例化Model类,传入字段参数值

course=Course(name=name,desc=desc,displayidx=displayidx)        course.save()
Model类就对应表,Model类的一个实例就对应表中的一条记录

表结构的定义就像类定义(表的字段就像类的属性)

表里面的一个记录就是类里面的一个实例,不需要执行sql语句,sql语句被底层给封装了,SQL语句是很底层的实现方式,面向对象是一种比较上层的方法的操作就实现了对数据库的操作

方法二

Course.objects.create(name=name,desc=desc,display_idx=displayidx)

显示数据库中已经存在的记录

获取所有记录

Course.objects.all( )

返回的是QuerySet类型的对象,很像一个list;QueryDict很像一个dict,get请求返回的

修改模板

{% for one in courseList %}<tr><td>{{one.name}}</td><td>{{one.desc}}</td><td>{{one.displayidx}}</td></tr>{% endfor %}
 get请求会带来安全问题

<form method='post'>  <fieldset>
修改为post会遇到问题

CSRF - Cross Site Request Forgery 跨站点伪造请求

http://www.cnblogs.com/shytong/p/5308667.html (CSRF简介)

http://blog.csdn.net/ybdesire/article/details/48196843(Django的CSRF保护引起的403)

加入

from django.views.decorators.csrf import csrf_exempt@csrf_exemptdef showadd_course(request):    studentList =[]    #如果接受的请求中有name,就需要添加课程信息到数据库中    if 'name' in request.GET:

过滤查询filter

使用filter方法

courseList = Course.objects.all().filter(display_idx=1)

过滤条件的文档在https://docs.djangoproject.com/en/1.11/ref/models/querysets/#id4


#查询数据Course.objects.all() #获取全部数据Course.objects.all().values('name')#只取nameCourse.objects.all().values_list('id','user') #取出iduser,并生成一个表#增加数据Course.objects.create(name='xxx',desc='xxx',display_idx='xxx')#course=Course(name='xxx',desc='xxx',display_idx='xxx')course.save()#删除数据Course.objects.filter(name='xxx').delete()#删除name=xxx行数据#改数据Course.objects.filter(name='xxx').update(desc='asd')#course=Course.objects.get(name='xxx')course.desc = 'asd'course.save()

详细见参考http://www.cnblogs.com/yangmv/p/5327477.html

阅读全文
0 0
原创粉丝点击