我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python实例

Django使用mysql操作实战系列之七

原创 2017年06月27日 16:46:04 标签:django /mysql 721

1,创建项目test03

创建项目test03。

django-admin startproject test03


打开test03/settings.py文件,找到DATABASES项,默认使用SQLite3数据库

dd7c1a0a94239b9ae3fad81d811c4bb6.jpg-wh_

2,mysql数据库创建及配置


修改为使用MySQL数据库,代码如下:


将引擎改为mysql,提供连接的主机HOST、端口PORT、数据库名NAME、用户名USER、密码PASSWORD。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test03', #数据库名字,
        'USER': 'root', #数据库登录用户名
        'PASSWORD': 'xiaoke', #数据库登录密码,我自己修改了
        'HOST': 'localhost', #数据库所在主机(公司中写真实主机地址)
        'PORT': '3306', #数据库端口
    }
}

注意:数据库test2 Django框架不会自动生成,需要我们自己进入mysql数据库去创建。

下面是手动创建数据库,打开新终端,在命令行登录mysql,创建数据库test2。


注意:设置字符集为utf8 

create database test2 charset=utf8;



3,创建booktest应用

进入test03目录,创建应用booktest

cd test03 
python manage.py startapp booktest

4,注册booktest应用


将应用booktest注册到项目中:打开test03/settings.py文件,找到INSTALLED_APPS项,加入如下代码:

0ac937412585cc6e533dc40558b661ea.jpg-wh_


5,定义模型类


模型类被定义在“应用/models.py”文件中,此例中为“booktest/models.py”文件。

模型类必须继承自Model类,位于包django.db.models中。

对于重要数据使用逻辑删除。


6,具体模型代码

# 定义图书模型类BookInfo
class BookInfo(models.Model):
    # 图书名称,唯一
    btitle = models.CharField(max_length=50, unique=True)
    bpub_date = models.DateField()
    bread = models.IntegerField(default=0)
    bcomment = models.IntegerField(default=0)
    # 逻辑删除,默认不删除
    idDelete = models.BooleanField(default=False)
# 定义英雄模型类HeroInfo
class HeroInfo(models.Model):
    # 英雄姓名,不唯一,可以有重名的英雄
    hname=models.CharField(max_length=50,unique=False)
    # 英雄性别,默认False为男性,也可以设为Integer类型,0或者1
    hgender=models.BooleanField(default=False)
    isDelete=models.BooleanField(default=False)
    # 英雄的描述
    hcontent=models.CharField(max_length=500)
    # 图书与英雄的关系为一对多的关系,所以属性定义在英雄的模型类中
    hbook=models.ForeignKey('BookInfo')


7,迁移


生成迁移文件。

python manage.py makemigrations

执行迁移。

python manage.py migrate

5e19d41d147130dfcfd57b8b6edc7022.jpg-wh_

打开数据库的命令行,

700504c68c6e434aeec87304e04b79b1.jpg-wh_

表booktest_bookinfo结构如:

默认值并不在数据库层面生效,而是在django创建对象时生效。

451e8d11a24807df077edb6922beb8d1.jpg-wh_

这里写图片描述

表booktest_heroinfo结构如下:

Django框架会根据关系属性生成一个关系字段,并创建外键约束。

cc3eca407b32f74029f4aeeac27cff88.jpg-wh_

8,建立测试数据


在数据库命令行中,复制如下语句执行,向booktest_bookinfo表中插入测试数据:

insert into booktest_bookinfo(btitle,bpub_date,bread,bcomment,isDelete) values
('射雕英雄传','1980-5-1',12,34,0),
('天龙八部','1986-7-24',36,40,0),
('笑傲江湖','1995-12-24',20,80,0),
('雪山飞狐','1987-11-11',58,24,0);

d3c23186549ed5ae035acecfb8ae96c5.jpg-wh_

再复制如下语句执行,向booktest_heroinfo表中插入测试数据:

insert into booktest_heroinfo(hname,hgender,hbook_id,hcontent,isDelete) values
('郭靖',1,1,'降龙十八掌',0),
('黄蓉',0,1,'打狗棍法',0),
('黄药师',1,1,'弹指神通',0),
('欧阳锋',1,1,'蛤蟆功',0),
('梅超风',0,1,'九阴白骨爪',0),
('乔峰',1,2,'降龙十八掌',0),
('段誉',1,2,'六脉神剑',0),
('虚竹',1,2,'天山六阳掌',0),
('王语嫣',0,2,'神仙姐姐',0),
('令狐冲',1,3,'独孤九剑',0),
('任盈盈',0,3,'弹琴',0),
('岳不群',1,3,'华山剑法',0),
('东方不败',0,3,'葵花宝典',0),
('胡斐',1,4,'胡家刀法',0),
('苗若兰',0,4,'黄衣',0),
('程灵素',0,4,'医术',0),
('袁紫衣',0,4,'六合拳',0);

67213a666b88328cf2560188789a7bd4.jpg-wh_


9,定义视图


打开booktest/views.py文件,定义视图代码如下:

from datetime import date
from django.shortcuts import render,redirect
from booktest.models import BookInfo
# 查询所有图书并显示的视图函数
def index(request):
    books=BookInfo.objects.all()
        heros=HeroInfo.objects.all()
        return render(request,'booktest/index.html',{'books':books,'heros':heros})
# 新增图书视图视图函数
def addBook(request):
    book=BookInfo()
    book.btitle='晓可自传'
    book.bpub_date=date(2017,6,27)
    book.save()
    # return HttpResponse('ok') 
    # 重定向跳转到首页
    return redirect('/index/')
# 根据图书id删除一本书的视图函数
def delBook(request,bid):
    # 查询出图书
    b=BookInfo.objects.get(id=int(bid))
    b.delete()
    return redirect('/index/')


10,配置url

打开test03/urls.py文件,配置url如下:
from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
    url(r'^admin/', include(admin.site.urls)),
    # 配置成功之后去booktest的urls文件中找对应的视图函数
    url(r'^',include('booktest.urls'))
]
在booktest应用下创建urls.py文件,代码如下:
from . import views
from django.conf.urls import url
urlpatterns=[
    url(r'^index/$',views.index),
    url(r'^addBook/$',views.addBook),
    url(r'^delBook/$',views.delBook)
]


11,创建模板

打开test03/settings.py文件,配置模板查找目录TEMPLATES的DIRS。
‘DIRS’: [os.path.join(BASE_DIR,’templates’)],

模板代码如下test03/templates/booktest/index.html:

<html>
<head>
    <title>Python-晓可的图书网站</title>
</head>
<body>
<a href="/addBook/">新增图书</a>
<ul>
    {%for book in books%}
    <li>书名:`book`.`btitle`--<a href="/delBook`book`.`id`/">删除</a></li>
    {%endfor%}
</ul>
<br/>
<br/>
<h2>所有英雄如下:</h2>
<ul>
    {% for hero in heros%}
    <li>姓名:`hero`.`hname`--大招:{{ hero.hcontent}}</li>
    {% endfor %}
</ul>
</body>
</html>


12,运行


运行服务器

python manage.py runserver

运行结果如下:

034b2519fff6480c5a500db1f27cc9e6.jpg-wh_

查看booktest_bookinfo表信息,可以得知增加和删除图书信息

d3fb8d23f77b706e271763ec83aaf84c.jpg-wh_


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python实例

Django使用mysql操作实战系列之七原创 2017年06月27日 16:46:04 标签:django /mysql 7211,创建项目test03创建项目test03。django-admin startproject test03
2023-01-31

OPCUA-Python实例

本文提供了一个简单的Python实例,演示如何使用OPCUA客户端连接到OPCUA服务器并读取数据,包括:导入必要的OPCUA库。连接到OPCUA服务器。浏览节点树以查找要读取的节点。获取特定节点的当前值。可选择设置节点的写入值。与服务器断开连接。本文还提到了安全通信、数据类型和OPCUA库选择方面的注意事项。
OPCUA-Python实例
2024-04-02

python+ldap实例

Python 如何进行域账号的校验?当然是操作ldap.首先需要安装python-ldap的模块 http://www.python-ldap.org/。 在这里用的是windows系统,当然比较容易,下载地址 http://pypi.py
2023-01-31

python小实例

#!/usr/bin/pythonimport osimport rehosts = open('/home/haoren/serverlist.ini')for line in hosts:    if re.search('=',lin
2023-01-31

python web实例

#引入包import web #定义访问路径urls = ( '/(.*)', 'hello' ) #定义appapp = web.application(urls, globals()) #定义访问类clas
2023-01-31

python实例手册

python实例手册更新下载地址:  http://url.cn/U7NUNf请使用 notepad++  设置 - 首选项 - 新建 - 选择utf8(无bom)格式。"alt+0"将函数折叠后方便查阅。
2023-01-31

Python单例模式实例详解

本文实例讲述了Python单例模式。分享给大家供大家参考,具体如下: 单例模式:保证一个类仅有一个实例,并提供一个访问他的全局访问点。 实现某个类只有一个实例的途径: 1,让一个全局变量使得一个对象被访问,但是他不能防止外部实例化多个对象。
2022-06-04

Python continue 语句实例

Python continue 语句跳出本次循环,而break跳出整个循环。
Python continue 语句实例
2024-04-23

python 编程实例 5

#题目:输入三个整数 x,y,z,请把这三个数由小到大输出。 #1.程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较,如果 x>y 则将 x 与 y #的值交换,再比较X 和Z比较。x = int(input("输入一
2023-01-31

python while循环实例

counter = 0while counter < 3:        print 'loop#%d'  %(counter)        counter+=1loop #0loop #1loop #2
2023-01-31

python 使用ldap实例

#coding: utf-8ldap_config = { 'ldap_path': 'ldap://xx.xx.xx.xx:389', 'base_dn': 'ou=users,dc=ledo,dc=com', 'ldap_user
2023-01-31

第一个python实例

#第一个python实例:监控cpu#/bin/bash/env Pythonfrom __future__ import print_functionfrom collections import OrderedDictimport pp
2023-01-31

python—函数实例二

一、递归 几种常用内置函数方法:1)os.listdir():列出第一层目录文件In [14]: os.listdir("/root/python")Out[14]:['20.py','1.py','19.py','21.py']2)os.
2023-01-31

python 编程实例 1

#python 100 例 1.py#题目:有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多 #少?a = {}c = 1for i in range(1,5):    for j in range(1,5): 
2023-01-31

python GUI实例学习

在学习本篇之前,如果你对Python下进行GUI编程基础内容还有不明白,推荐一篇相关文章:简单介绍利用TK在Python下进行GUI编程的教程 写一个简单的界面很容易,即使是什么都不了解的情况下,这个文本转载了最简单的界面编写,下个文本介绍
2022-06-04

python操作Mysql实例

本文介绍了Python操作mysql,执行SQL语句,获取结果集,遍历结果集,取得某个字段,获取表字段名,将图片插入数据库,执行事务等各种代码实例和详细介绍。 实例1、获取MYSQL的版本 #!/usr/bin/env python  im
2023-01-31

python 编程实例 6

#python 100 例 6.py#输出9*9口决for i in range(1,10):    for j in range(1,10):        a = i * j        print (i ,"*",j ,"=",a
2023-01-31

python—函数实例一

1.函数的定义练习:判断输入的是不是一个数字#!/usr/bin/env pythondef isNum():    sth = raw_input("Please input something: ")    try:        if
2023-01-31

Python numpy.trapz实例讲解

`numpy.trapz()`函数是NumPy库中的一个函数,用于计算给定数据的定积分,即通过数值积分的方法来计算函数在给定区间上的面积。下面是一个使用`numpy.trapz()`函数的示例:```pythonimport numpy a
2023-10-12

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录