django框架和mysql数据库在Windows系统的配套使用基础

django简介

django框架是为Python定制的web框架,采用MVT模式,既模型M,视图V和模板T。可能一两句话讲不清楚什么是django的MVT框架模式,所以我想写出的是这个框架的基础使用流程,再搭配MySQL数据库后台处理数据,这么些内容,至于深入的理解,就在使用中,慢慢体会吧,完整的解释一个框架,文章较长。

MySQL简介

MySQL是一个很受欢迎的关系型数据库,开源且免费,接触过web的,无论Python或Java还是其他语言,都会有或多或少的了解。在本次django框架中,主要写的是用对象映射关系来操作MySQL数据库。

基本流程

准备

Pycharm集成开发环境
MySQL数据库

django框架安装

使用命令
—pip install django==2.0.7
进行安装
==后跟的是django的指定版本,之所以建议选择2.0.7版本,是因为2.0.7版本兼容MySQL5.5及以上的版本。

MySQL数据库安装

版本选择5.5及以上版本,解压压缩包,按步骤逐步安装即可。
需要注意的是,MySQL需要配置环境变量,就是找到文件夹中的bin文件夹,复制其路径,添加到系统环境的Path环境变量中,这样做可以保证你在dos命令行中可以对其进行操作。
安装完成后,打开dos命令行,如果是win10系统,需要使用管理员身份来打开。

使用命令
–net start mysql
启动MySQL数据库,如果显示服务成功启动,则表示安装成功。

使用命令
–net stop mysql
停止MySQL数据库服务。
MySQL的默认用户名是:root,密码是:123

使用命令
–mysql -u root -p123
在启动服务后,登陆到MySQL服务端

django项目创建

这个需要在命令行进行操作,无论你是Anaconda或DOS或Pycharm的命令行,通过cd命令转到你所要创建项目的文件夹下,开始操作。建议使用Pycharm自带的Terminal命令行。

使用命令
–django-admin startproject webb(项目名)
刷新当前文件夹,出现webb文件夹表示项目创建成功
在这里插入图片描述

django虚拟环境创建

点击file—》点击open —》选择创建的项目文件夹—》当前窗口打开
这样可以保证当前窗口只有一个项目,这样做的好处是不需要再去改各个文件包之间的导入路径。

在这里插入图片描述
点击file–》点击setting–》点击project;interpret–》点击设置图标–》添加新的运行环境–》创建evn文件夹–》点击确定
如下图,新的虚拟环境就创建好了。这样做的好处是,每个项目有独立的运行环境,只有自己需要的库和模块,在迁移的时候,不会特别的臃肿。
在这里插入图片描述
由于是新的虚拟环境,所以django框架还需要再安装一次,版本选择2.0.7。

启动django

在Terminal命令行

使用命令
–python manage.py runserver 127.0.0.1:8000 或
–python manage.py runserver
都可以启动django项目

在运行内容中点击http://127.0.0.1:8000/,若跳转到了web浏览器页面,则表示项目启动成功。如图:
在这里插入图片描述

创建app

django框架可以创建多个app。
在Terminal中,

使用命令
–python manage.py startapp user(应用名)
刷新文件夹,出现user文件夹表示创建成功。

到此,基本上一个完整的框架搭建就完成了,下面开始展开工作。

调整settings.py文件

开始使用的第一步就是调整settings.py文件
首先自己创建的app需要安装到settings文件中,才可以使用。
在这里插入图片描述
然后和数据库的链接,也在settings文件中设置
name为数据库名,如果没有,需要先创建
name为数据库名,如果没有,需要先行创建。host为主机ip,port为端口号,user为数据库用户名,password为数据库密码。

最后是页面字码格式设置和时间设置。这里设置成’zh-hans’ 和’Asia/Shanghai’
中国汉字 时区是亚洲上海。
在这里插入图片描述

T(模板)的使用-templates

MVT框架模型之一,模板的作用,主要是用来编写html页面。
首先要在app-user文件夹下,创建一个templates文件夹,用于存放编写的页面文件。
比如我需要做一套用户管理系统,包括首页,注册页,登陆页,数据管理页等。如图:
在这里插入图片描述
这里值得一提的是,html中的链接,输入的都是/path路径/,和Java中直接跳页面是不一样的。
紧接着,就可以到ulrs.py中将每个需要跳转的路径添加到path路径中,如上图中的右框中的样子,第一个参数是拼接的路径,第二个参数是处理这个路径的函数名。

V(视图)的使用-views

MVT框架模型之一,上边提到的处理函数就是在views.py文件中编写的。视图的主要作用就是处理业务逻辑,根据不同的条件以及 不同的请求方式,返回给浏览器不同的页面。比如说一个登陆页面,如果是直接访问的GET请求,则返回登陆页面供用户输入登陆;如果是已经提交过数据的POST请求,那就要返回数据库查询是否输入正确,返回不同的页面。如图:
在这里插入图片描述
值得一提的是,每个提交的表单中需要添加一个额外的参数:
{% csrf_token %}
用来验证csrf拦截器,如果没有这个参数,所有提交都会被拦截。

在这里插入图片描述
值得一提的是,返回方式大致有3种:
1.HttpResponse(request,返回无需页面的html或文本)
2.render(request,返回页面,数据(只接受字典形式))
3.redirect(返回路径,并携带获得的参数)

M(模型)-models

MVT框架模型之一,模型的主要作用是和数据库进行交互。在模型中,也就是在models.py文件中创建的类,称为表类,相当于数据库中的表。这里以对象映射的形式对数据库实现增删改查。
在这里插入图片描述
可以创建多个类,相当于多张表。每个类都必须继承models.Model类,这里介绍几种常用的字段,比如第一个用户类中:
用户名使用字段CharField(),相当于SQL中的varchar字段,以及IntegerField,FloatField等,用法相似;
括号中的第一个参数,可以省略形参,为页面上字段显示的别名。
值得一提的是DecimalField()同样用于浮点数,可是规定了总位数和小数点位数。

根据不同的需要,可以创建多表。比如一对一,一对多,和多对多,如上图的框2和框3。
**在所需要的表创建好以后,需要生成迁移文件和执行迁移文件,才能做到真正的数据库的链接。
生成迁移文件:
使用命令:
–python manage.py makemigrationgs
执行迁移文件:
使用命令:
–python manage.py makerate
**

数据库的增删改查和页面交互

由于django框架中的数据库交互是使用的对象映射关系,并不是sql语句,所以数据库的增删改查可以发生在很多地方。比如views视图的逻辑处理中,又比如后台的models中。
比如说页面展示的用户信息表,如图:
在这里插入图片描述
点击删除,将删除掉一条信息。
那么在views文件中处理是:
1.获得要删除的用户id
2.创建表对象
3.删除操作
4.返回页面
操作如图:
在这里插入图片描述
值得一提的是user_id的传输过程:
首先在删除页面表单提交的时候需要将user_id拼接到传入urls.py的路径中去,拼接格式是:
‘/delete/{{user.id}}’
如图:
在这里插入图片描述
同样urls文件也要以相同的格式匹配:
如path(‘delete/int:user_id/’,delete)
int:user_id是一种固定格式,保证找到delete函数时,能够将参数传过去。
修改也是一样。
值得一提的是,html页面的编写过程中,同样有循环(for)和判断(if)的使用,如上图,在使用的结尾处,需要加上{% endfor%} 这是DTL的语言格式。

数据库对象映射的常用语句

1.创建表对象
方式一:
–t1 = Table_name.objects.create(字段1=‘数据1’,字段2=‘数据2’)
方式二:
–t1 = Table_name()
–t1.字段1 = ‘数据1’
–t1.字段2 = ‘数据‘2’
……
# 保存以后 数据才能进入数据库
–t1.save
2.查询表内容
方式一:
–t2 = Table_name.objects.get(‘查询条件 如:字段1 = 数据1’)
get方式查询只获得一条数据,如果是0或者多条数据,则程序报错,所以使用get建议加上try except结构捕获异常
方式二:
–t2 = Table_name.objects.all(‘查询条件’)
获取表中所有数据结果集,后续跟上.values()可以获得所有数据的字典形式。
方式三:
–t3 = Table_name.object.filter(‘查询条件’)
获取表中所有数据结果集,后续跟上.values()可以获得所有数据的字典形式。
3.修改表内容
方式一:
获取表中要修改的数据
–t3 = Table_name.objects.get(‘查询条件 如:字段1 = 数据1’,……)
修改字段
–t3.字段1 = 数据1
–t3.字段2 = 数据2
……
–t3.save()
保存以后,修改生效。

4.删除表内容
方式一:
获取表中要删除的数据
–t3 = Table_name.objects.get(‘查询条件 如:字段1 = 数据1’,……)
删除
–t3.delete()

django框架自带的后台–admin

如图:
在这里插入图片描述
链接是http://127.0.0.1/admin/
这个后台的作用之一是对数据库进行管理–增删改查。
第一步:
需要在Terminal命令行创建超级管理员
使用命令:
–python manage.py createsuperuser
按照提示一次输入创建的用户名,邮箱(可以不填),以及密码。
第二步:
创建好管理员后就可以登录后台服务端了。
输入账号和密码。如图:
在这里插入图片描述
第三步:
在admin.py文件中进行注册,将自己的表 注册到后台中去。
导入表文件:
–from user.models.py import *
注册:
–admin.site.register(‘表名类’)
这样后台数据库的表就出现了。如图:
在这里插入图片描述
不需要自己编写页面。

admin后台的常用操作

在admin.py中调整页面样式:

from django.contrib import admin
from user.models import *

admin.site.register(UserInfo)


class UserInfo_Admin(admin.ModelAdmin):
    # 列表展示
    list_display = []
    # 分页
    list_per_page = 2
    # 模糊查询
    search_fiellds = ['uname']
    # 过滤器实现分组查询
    list_filter = ['uname']

一行代码实现分页,模糊查询,分组查询等,代码如上。

总结

django框架大体使用流程如上所述。
难点不在于框架的使用规则,在于各个模块之间的连接逻辑。
框架的主要作用之一是降低模块间耦合度,使迁移方便和提升兼容性。所以理清模块间的连接逻辑是学习框架的重点。
个人总结大致连接逻辑如下:
在html页面中写出要跳转的路径,在urls文件中填写path(’/拼接路径/‘),填写views文件的处理函数,处理函数根据逻辑判断对数据库进行操作,返回跳转的html页面,然后重复。

注意

	注意:在form表单提交的过程中,要添加一个额外的参数{% csrf_token  % }--这是框架的一个		验证信息,如果不添加,将会被框架自行拦截
	第二种解决方式就是在setting中注释掉开启的拦截功能---不是很规范的做法。
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值