博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django.modle基础(增删改查)
阅读量:5138 次
发布时间:2019-06-13

本文共 3199 字,大约阅读时间需要 10 分钟。

一、ORM

  映射关系

    表名<----------->类名

    字段<------------>属性

    表记录<—------>类实例对象

二、创建表(建立模型)

  在创建表之前的准备工作:

  第一步:在创建表之前,首先应该在MySQL中创建一个数据库。

  第二步:在setting配置文件中进行数据库连接的相关配置。

      即修改Django默认的数据库的sqlist3为MySQL

  第三步:早App01——Init文件中导入pyMySQL,再写上一句   pymysql.install_as_MySQLdb()

  第四步:创建数据库表的执行命令(需要记住两条命令)

    Python manage.py makemigrations  创建脚本

    python manage.py migrate      迁移

三、添加表记录

  添加表记录的方式有两种

  方式一:

  book_obj=models.Book(title=title,author=author,publishDate=pubDate,price=price)

 book_obj.save()

  方式二:

  book_obj=models.Book.objects.create(title=title,publishDate=publishDate,price=price)

四、查看表记录

  1.先在视图函数view中将数据取出来   

  from app01 import models    #app01是应用名  def index(request):      # 从数据库取出所有书籍对象      bookList=models.Book.objects.all()  #    [bookObj1,.....]      return render(request,"index.html",{"bookList":bookList})

    查询相关:all  查询所有结果

         filter  查询所给筛选条件相匹配的对象

  2.在template模板中接收

    {% for book_obj in bookList %}

                                       <tr>                                     <td>{

{ book_obj.nid }}</td>

   {
{ book_obj.title }}    {
{ book_obj.publishDate|date:"Y-m-d" }}    {
{ book_obj.price }}       {% endfor %} 五、查询表记录   1.查询相关的API     1.all         查询所有结果     2.filter(**kwargs)它包含了与所给筛选条件相匹配的对象,即过滤     3.get(**kwargs)  返回与所给筛选条件相匹配的对象,返回结果有且只有一个。如果符合筛选条件的对象超过一个或没有都会抛出错误,拿到的是一个modle对象,区别于filter     4.exclude(**kwargs)它包含了与所给筛选条件不匹配的对象,即除过筛选对象外的所有记录     5.values(field)  返回一个valueQueryset——一个特殊的Queryset,运行后得到的并不是一系列modle的实例化对象,而是一个可迭代的字典序列     6.values_list(field)它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列     7.order_by(*field)对查询的结果排序     8.reverse()    对查询结果反向排序     9.distinct()    从返回结果中剔除重复记录     10.count()     返回数据库中匹配查询(Queryset)的对象的数量     11.first()     返回第一条记录     12.last()      返回最后一条记录     13.exists()    如果Qureyset包含数据,则返回true,否则返回false       注意:一定要区分modle对象和Qureyset对象         modle对象可以调用他下面所有的属性方法,可以用.的形式调用属性,Queryset得到的是一个集合。   2.双下划线之单标查询     modle.Tb1.objects.filter(id_it=10,it_gt=1)  获取id大于1且小于10的值     modle.Tb1.objects.filter(id_in=[11,22,33])   获取id等于11,22,33的数据     modle.Tb1.objects.exclude(id_in=[11,22,33])  not in     modle.Tb1.objects.filter(name_contains="ven")      modle.Tb1.objects.filter(name_icontains="ven") icontains大小写不敏感     modle.Tb1.objects.filter(id_range=[1,2])    范围bettwen and     startswith,istartswith,endwish,iendwish 六、删除表记录   删除方法就是delete()。它运行时立即删除对象而不返回任何值。   比如我们给表中添加一个删除按钮来实现点击按钮后数据库每条记录的删除     1.template模板
      {% for book_obj in bookList %}                        {
{ book_obj.nid }}       {
{ book_obj.title }}       {
{ book_obj.author }}       {
{ book_obj.publishDate|date:"Y-m-d" }}        {
{ book_obj.price }}                                       {% endfor %}     2.url并发  
      urlpatterns = [          url(r'^admin/', admin.site.urls),          url(r'^index/', views.index),          url(r'^del/(\d+)', views.delBook),      ]     3.试图函数view实现删除
      def delBook(request,id):          models.Book.objects.filter(nid=id).delete()          return redirect("/index/")
 
 
 
 
      

 

转载于:https://www.cnblogs.com/jacky912/p/10450037.html

你可能感兴趣的文章
iOS按钮长按
查看>>
Shell流程控制
查看>>
CSS属性值currentColor
查看>>
[Leetcode|SQL] Combine Two Tables
查看>>
《DSP using MATLAB》Problem 7.37
查看>>
ROS lesson 1
查看>>
js笔记
查看>>
c风格字符串函数
查看>>
python基础学习第二天
查看>>
java可重入锁reentrantlock
查看>>
浅谈卷积神经网络及matlab实现
查看>>
解决ajax请求cors跨域问题
查看>>
【123】
查看>>
《收获,不止Oracle》pdf
查看>>
LinkedList<E>源码分析
查看>>
Real-Time Rendering 笔记
查看>>
如何理解HTML结构的语义化
查看>>
Activity之间的跳转:
查看>>
软件是天时、地利、人和的产物!
查看>>
实验四2
查看>>