Django----(四)
图书管理系统
出版社 图书 作者
出版社的管理
展示
# 查询所有的数据
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() # 提交
django的命令
下载
pip install django==1.11.23 - i
创建项目
django-admin startproject 项目名
启动项目
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
创建app
python manage.py startapp app名称
注册
数据库迁移
python manage.py makemigrations # 创建迁移文件 检测已经注册的APP下的models
python manage.py migrate # 迁移 将models的变更记录同步到数据库
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’)]
django使用mysql数据库的流程
创建一个mysql数据库
settings中配置数据库
ENGINE : 引擎
NAME : 数据库的名称
HOST : IP
PORT : 3306
USER: 用户名
PASSWORD: 密码
告诉django使用pymysql模块连接mysql数据库;
在与settings同级目录下的
__init__.py
中写import pymysql
pymysql.install_as_MySQLdb()
在app下的models.py中写类
class Publisher(models.Model):name = models.Charfield(max_length=32) # varcher(32)
执行迁移命令:
python manage.py makemigrations # 创建迁移文件 检测已经注册的APP下的models
python manage.py migrate # 迁移 将models的变更记录同步到数据库
get 和 post区别
get
发get请求的方式:
- form表单 不指定method
- 在地址栏中直接输入地址 回车
- a标题
?k1=v1&k2=v2 request.GET request.GET.get('k1')
post
form表单 method='post'
request.POST request.POST.get('k1')
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()
模板的语法
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----(四)相关推荐
- Day068 Django(四)
16_创建多表 一对一关系 使用OneToOneField() # -*- coding: utf-8 -*-from django.db import models# Create your mod ...
- 【django接口自动化1】环境搭建
目录 一.下载python 二.下载pycharm 三.sudo pip install django 四.django-project目录详解 五.创建sign app 六.查看sign app的目 ...
- 毕业设计源码之WMS--开源仓库管理系统
一.项目简介 WMS--开源仓库管理系统 二.实现功能 发货管理 库存管理 财务中心 商品管理 基础设置 仓库设置 用户管理 司机管理 三.技术选型 python django 四.界面展示 五.源码 ...
- python搭建虚拟环境完整步骤
文章目录 搭建虚拟环境完整步骤 一.什么是虚拟环境? 二.如何创建虚拟环境 三.安装Django 四.pycharm改变当前项目的运行环境 搭建虚拟环境完整步骤 一.什么是虚拟环境? python的虚 ...
- django model filter_Django框架使用流程(四)
开发流程的学习,用于快速熟悉Django框架各个模块 一.运行测试服务器 django提供了测试服务器,这使得我们不需要项目部署即可展现效果 运行如下命令可以开启服务器 python manage.p ...
- 用python搭建个人博客过程_技术分享|利用Python Django一步步搭建个人博客(四)...
您好,欢迎来到本期"利用Python Django一步步搭建个人博客"系列的第四部分.在上一篇教程中,我们学习了如何编写URL并将其映射到页面.在我们继续之前,我们需要做的一件事是 ...
- django 快速实现注册(四)
一.创建项目与应用 #创建项目 fnngj@fnngj-H24X:~/djpy$ django-admin.py startproject mysite3 fnngj@fnngj-H24X:~/dj ...
- Django(四)数据库
一.数据库框架 数据库框架是数据库的抽象层,也称为对象关系映射(Object-Relational Mapper, ORM),它将高层的面向对象操作转换成低层的数据库指令,比起直接操作数据库引擎,OR ...
- Django - Xadmin (四) Filter
Django - Xadmin (四) Filter Filter 功能描述 与 admin 组件中 Filter 功能类似,在展示页面右侧放置一列标签,通过点击这些标签来筛选出该标签相关的数据. 比 ...
- django mysql开发_基于django框架web项目实战开发四 django+mysql实现增删查改功能
第一步:编写增删查改功能代码 打开项目myweb目录下view.py, 并编写以下代码 view.py from django.shortcuts import render, redirect fr ...
最新文章
- (0018)iOS 开发之Github 使用技巧
- 【推荐系统(二)】协同过滤之隐语义模型(LFM)
- 虚拟化五、KVM虚拟化技术2
- Oracle delete input与delete all input
- 2017.9.18 数颜色 思考记录
- linux命令——locate
- MySQL事务学习总结
- python 重启程序_重新启动Python程序
- 转:ElasticSearch 插件安装
- 收集几个企业内部的沟通工具
- 北京世园会率先启用5G技术 中国馆优雅呈现
- java的框架gwt介绍_GWT Portlets
- 企业用企业邮箱的好处是什么?企业邮箱支持哪些功能?
- 软件自动化测试的的设计标准和适用范围
- 查询课程数mysql_mysql_数据查询练习
- 一周AI资讯|深度学习如何进行“读心术”?
- 网络(八)之OSPF协议的原理及配置
- 前端第二章:3.HTML文档声明、存储容量换算、字符编码、字符集、HTML帮助文档Zeal
- GDPR条例的12项重点分析
- 十二.作业难点(有IT大牛路过的可以帮我解答我的疑问?万分感谢)--转行的苦逼人...
热门文章
- Java毕业设计_基于Android的校园二手商品交易平台
- 【C语言】Sn的公式求和
- python股票大数据分析_向大家介绍我的新书:《基于股票大数据分析的Python入门实战》...
- python从0到100_python 100_python100天从新手到大师_pythong0~100的质数 - 云+社区 - 腾讯云...
- 电脑键盘的详细键值表
- azure 使用_如何使用Azure的托管MariaDB
- Lucene5学习之自定义同义词分词器简单示例
- 数据库--关系代数扩展操作(交、thetaθ连接、等值连接、自然连接)
- mysql-5.7.21-winx64.zip安装教程
- [AI创造营]Wechaty实用小工具---证件照助手