zoukankan      html  css  js  c++  java
  • 基于图书查询的FBV增删改查

    Django操作数据库增删改查

    ​1、打开pycharm中的Database,建立一个数据库,file行选中我们工程中的db.sqlte3, ok,此时只生成一个表。

    2、数据库迁移:控制台输入 python manage.py magrate

    ​ 此时会生成八个表。

    3、生成一个templates文件夹,此下面放html文件。

    4、在settings.py中配置文件:

    ​ temolates =[{

    ​ 'DIRS':[

    ​ # BASE_DIR 当前工程路径 templatrs就是模板路径 ,作用是拼接此路径

    ​ os.path.join(BASE_DIR, 'templates')

    ]}]

    5、在templates创建html文件,用来测试

    6、

    urls.py>
    	urlspatten=[
    	      # ‘hello_’是127.0.0.1后缀 
    	      path('hello_',views.hello)
                ]
    

    7、创建数据库

    models.py>
    	# 创建一个数据库,继承模型类
    	class Book(models.Model):
            b_name = models.CharField(max_length=16)
            b_ptice = models.FloatField(default=1)
            '''
            类中套类
            class Meta:
            	# 定义表名
            	db_table = "表名"
            	# 排序方法,按属性排名,属性前面加一个负号(-)是倒序
            	ordering = ["属性",]
            '''
    

    8、创建完以后去setting.py中注册,添加文件名:

    ​ INSTALLEN_APPS = { 'App',}

    9、生成迁移文件,控制台输入:python manage.py makemigrations

    10、执行迁移文件:python manage.py migrate

    11、查看数据库,可以看到生成一个App_book数据库。

    开始干正事...

    建立urls连接:

    urls.py>
    
    	urls={
    
    	path('hello',views.hello)
    
    }
    
    
    

    获取数据库:

    views.py>
    def hello(request):
    	books = Book.objects.all()		# 获取数据库表数据
        data = { "books": books  }		# 数据传递
        # render 渲染页面 
        # request 固定写法 “html”渲染模板 context渲染时传递的参数
        return render(request,"hello.html",context=data)
    

    在templates中建立hello.html文件

    hello.html>
        <ul>
            {% for book in books %} 	# 遍历books中的所有元素
            <li>{{ book.b_name }}</li>	# 获取元素参数,并输出在页面上
            {% endfor %}				# 结束循环
        </ul>
    

    查整个数据库的所有b_name字段属性,并以列表形式输出在html上:

    ​ 网页>
    ​ 127.0.0.1:8080/add_book

    增删改:

    ​ 删:

    urls>
    	path('delete_book',views.delete_book)
    views.py>
    	def delete_book(request):
            # 获取id为1的数据
            book = Book.objects.get(pk=1)
            # 删除数据
            book.delete()
            return Httpresponse("删除成功")
    网页>
    127.0.0.1:8080/delete_book
    

    增:

    urls>
    	path('add_book',views.add_book)
    views.py>
    	def add_book(request):
            # 获取整个数据库结构
            book = Book()
            # 添加字段属性
            book.b_name = "水浒传"
            book.b_prite = 99
            # 保存
            book.save()
            return Httpresponse("添加成功")
    网页>
    127.0.0.1:8080/add_book
    

    改:

    urls>
    	path('modifybook',views.modify_book)
    views.py>
    	def modify_book(request):
            # 获取id为1的数据
            book = Book.objects.get(pk=1)
            # 修改该属性
            book.b_name = "西游记"
            book.save()
            return Httpresponse("修改成功")
    网页>
    127.0.0.1:8080/modifybook
    
    Model.objects参数:

    ​ all--获取所有属性

    ​ filter--获取满足条件的数据

    ​ exclude--将满足的条件删除

    ​ order_by--排序

    ​ first--返回查询集合中的第一个对象

    ​ last--返回最后一个对象

    ​ count--返回查询对象个数

    ​ exists--判断路径是否存在

  • 相关阅读:
    java枚举enum
    冒泡排序、选择排序、插入排序、二分法排序、快速排序、二叉树排序、堆排序总结
    Django-tinymce富文本的使用
    Redis-基本操作总结
    git-总结大全
    css-总结
    html-table布局
    html表单示例
    html总结
    python-浅拷贝、深拷贝实例以及讲解
  • 原文地址:https://www.cnblogs.com/lance-lzj/p/13822213.html
Copyright © 2011-2022 走看看