图书管理系统

出版社 图书 作者

出版社的管理

展示

# 查询所有的数据
all_publishers = models.Publisher.objects.all()   #  对象列表render(request,'publisher_list.html',{'all_publishers':all_publishers})

模板的语法:

​ {{ all_publishers }} 变量

​ {% for i in all_publishers %}

​ {{ forloop.counter }} {{ i }}

​ {% endfor %}

新增

# 方式一
ret = models.Publisher.objects.create(name=pub_name)
# 方式二
obj = models.Publisher(name=pub_name)
obj.save()

删除

pk = request.GET.get('pk')
query = models.Publisher.objects.filter(pk=pk)  # 对象列表
query.delete()  # 通过queryset 删除
query[0].delete()  # 通过单独的对象 删除

编辑

obj = models.Publisher.objects.filter(pk=pk).first()  # 对象列表中第一个对象
obj.name = pub_name  # 内存中修改
obj.save()          # 提交
  1. django的命令

    1. 下载

      pip install django==1.11.23 - i

    2. 创建项目

      django-admin startproject 项目名

    3. 启动项目

      cd 到项目的根目录

      python manage.py runserver # 127.0.0.1:8000

      python manage.py runserver 80 # 127.0.0.1:80

      python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80

    4. 创建app

      python manage.py startapp app名称

      注册

    5. 数据库迁移

      python manage.py makemigrations # 创建迁移文件 检测已经注册的APP下的models

      python manage.py migrate # 迁移 将models的变更记录同步到数据库

  2. django的配置 settings

    INSTALLED_APPS = [

    ​ 'app01',

    ​ 'app01.apps.App01Config'

    ]

    DATABASES

    ​ ENGINE : 引擎

    ​ NAME : 数据库的名称

    ​ HOST : IP

    ​ PORT : 3306

    ​ USER: 用户名

    ​ PASSWORD: 密码

    静态文件

    ​ STATIC_URL = '/static/'

    ​ STATICFILES_DIRS=[

    ​ os.path.join(BASE_DIR,‘static’)

    ]

    中间件

    ​ 注释掉csrf 提交POST

    模板 TEMPLATES

     DIRS =[     os.path.join(BASE_DIR,‘templates’)]  
  3. django使用mysql数据库的流程

    1. 创建一个mysql数据库

    2. settings中配置数据库

      ​ ENGINE : 引擎

      ​ NAME : 数据库的名称

      ​ HOST : IP

      ​ PORT : 3306

      ​ USER: 用户名

      ​ PASSWORD: 密码

    3. 告诉django使用pymysql模块连接mysql数据库;

      在与settings同级目录下的__init__.py中写

      import pymysql

      pymysql.install_as_MySQLdb()

    4. 在app下的models.py中写类

      class Publisher(models.Model):name = models.Charfield(max_length=32)   # varcher(32)
    5. 执行迁移命令:

      python manage.py makemigrations # 创建迁移文件 检测已经注册的APP下的models

      python manage.py migrate # 迁移 将models的变更记录同步到数据库

  4. get 和 post区别

    get

    发get请求的方式:

    1. form表单 不指定method
    2. 在地址栏中直接输入地址 回车
    3. a标题

    ?k1=v1&k2=v2 request.GET request.GET.get('k1')

    post

    form表单 method='post'

    request.POST request.POST.get('k1')

  5. orm

    面向对象和关系型数据库的一种映射

    对应关系:

    ​ 类 ——》 表

    ​ 对象 ——》 记录 (数据行)

    ​ 属性 ——》 字段

    from app import models

    查询:

    ​ models.Publisher.objects.get(name='xxxxx') # 查询一个对象 有且唯一 差不多或者多个就报错

    ​ models.Publisher.objects.filter(name='xxxxx') # 查询满足条件所有对象 对象列表 queryset

    ​ models.Publisher.objects.all() # 查询所有的数据 对象列表 queryset

    新增:

    ​ models.Publisher.objects.create(name='xxxxx') # 返回值 就是新建的对象

    ​ obj = models.Publisher(name='xxxxx') obj.save()

    删除:

    ​ models.Publisher.objects.filter(pk=1) .delete()

    ​ obj = models.Publisher.objects.filter(pk=1) .first() obj.delete()

    修改:

    ​ obj = models.Publisher.objects.filter(pk=1) .first()

    ​ obj.name = 'xxxxx'

    ​ obj.save()

  6. 模板的语法

    render(request,‘模板的文件名’,{'k1':v1})

    变量

    {{ k1 }}

    for 循环

    {% for i in k1 %}

    ​ {{ forloop.counter }}

    ​ {{ i }}

    {% endfor %}

    外键

    一对多

    图书管理系统

    出版社

    外键的设计

    class Book(models.Model):title = models.CharField(max_length=32)pid = models.ForeignKey('Publisher', on_delete=models.CASCADE) # 外键 #  on_delete  2.0 必填
    

查询:

all_books = models.Book.objects.all()
print(all_books)
for book in all_books:print(book)print(book.pk)print(book.title)print(book.pub,type(book.pub))  # 所关联的对象 print(book.pub_id,type(book.pub_id))  # 所关联的对象的pkprint('*' * 32)

新增

models.Book.objects.create(title=title,pub=models.Publisher.objects.get(pk=pub_id))
models.Book.objects.create(title=title, pub_id=pub_id)

删除:

pk = request.GET.get('pk')
models.Book.objects.filter(pk=pk).delete()

编辑:

book_obj.title = title
book_obj.pub_id = pub_id
# book_obj.pub = models.Publisher.objects.get(pk=pub_id)
book_obj.save()

转载于:https://www.cnblogs.com/hql1117/p/11420386.html

Django----(四)相关推荐

  1. Day068 Django(四)

    16_创建多表 一对一关系 使用OneToOneField() # -*- coding: utf-8 -*-from django.db import models# Create your mod ...

  2. 【django接口自动化1】环境搭建

    目录 一.下载python 二.下载pycharm 三.sudo pip install django 四.django-project目录详解 五.创建sign app 六.查看sign app的目 ...

  3. 毕业设计源码之WMS--开源仓库管理系统

    一.项目简介 WMS--开源仓库管理系统 二.实现功能 发货管理 库存管理 财务中心 商品管理 基础设置 仓库设置 用户管理 司机管理 三.技术选型 python django 四.界面展示 五.源码 ...

  4. python搭建虚拟环境完整步骤

    文章目录 搭建虚拟环境完整步骤 一.什么是虚拟环境? 二.如何创建虚拟环境 三.安装Django 四.pycharm改变当前项目的运行环境 搭建虚拟环境完整步骤 一.什么是虚拟环境? python的虚 ...

  5. django model filter_Django框架使用流程(四)

    开发流程的学习,用于快速熟悉Django框架各个模块 一.运行测试服务器 django提供了测试服务器,这使得我们不需要项目部署即可展现效果 运行如下命令可以开启服务器 python manage.p ...

  6. 用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...

    您好,欢迎来到本期"利用Python Django一步步搭建个人博客"系列的第四部分.在上一篇教程中,我们学习了如何编写URL并将其映射到页面.在我们继续之前,我们需要做的一件事是 ...

  7. django 快速实现注册(四)

    一.创建项目与应用  #创建项目 fnngj@fnngj-H24X:~/djpy$ django-admin.py startproject mysite3 fnngj@fnngj-H24X:~/dj ...

  8. Django(四)数据库

    一.数据库框架 数据库框架是数据库的抽象层,也称为对象关系映射(Object-Relational Mapper, ORM),它将高层的面向对象操作转换成低层的数据库指令,比起直接操作数据库引擎,OR ...

  9. Django - Xadmin (四) Filter

    Django - Xadmin (四) Filter Filter 功能描述 与 admin 组件中 Filter 功能类似,在展示页面右侧放置一列标签,通过点击这些标签来筛选出该标签相关的数据. 比 ...

  10. django mysql开发_基于django框架web项目实战开发四 django+mysql实现增删查改功能

    第一步:编写增删查改功能代码 打开项目myweb目录下view.py, 并编写以下代码 view.py from django.shortcuts import render, redirect fr ...

最新文章

  1. (0018)iOS 开发之Github 使用技巧
  2. 【推荐系统(二)】协同过滤之隐语义模型(LFM)
  3. 虚拟化五、KVM虚拟化技术2
  4. Oracle delete input与delete all input
  5. 2017.9.18 数颜色 思考记录
  6. linux命令——locate
  7. MySQL事务学习总结
  8. python 重启程序_重新启动Python程序
  9. 转:ElasticSearch 插件安装
  10. 收集几个企业内部的沟通工具
  11. 北京世园会率先启用5G技术 中国馆优雅呈现
  12. java的框架gwt介绍_GWT Portlets
  13. 企业用企业邮箱的好处是什么?企业邮箱支持哪些功能?
  14. 软件自动化测试的的设计标准和适用范围
  15. 查询课程数mysql_mysql_数据查询练习
  16. 一周AI资讯|深度学习如何进行“读心术”?
  17. 网络(八)之OSPF协议的原理及配置
  18. 前端第二章:3.HTML文档声明、存储容量换算、字符编码、字符集、HTML帮助文档Zeal
  19. GDPR条例的12项重点分析
  20. 十二.作业难点(有IT大牛路过的可以帮我解答我的疑问?万分感谢)--转行的苦逼人...

热门文章

  1. Java毕业设计_基于Android的校园二手商品交易平台
  2. 【C语言】Sn的公式求和
  3. python股票大数据分析_向大家介绍我的新书:《基于股票大数据分析的Python入门实战》...
  4. python从0到100_python 100_python100天从新手到大师_pythong0~100的质数 - 云+社区 - 腾讯云...
  5. 电脑键盘的详细键值表
  6. azure 使用_如何使用Azure的托管MariaDB
  7. Lucene5学习之自定义同义词分词器简单示例
  8. 数据库--关系代数扩展操作(交、thetaθ连接、等值连接、自然连接)
  9. mysql-5.7.21-winx64.zip安装教程
  10. [AI创造营]Wechaty实用小工具---证件照助手