Python Web框架Django的学习
- 简介
- 安装
- 开始创建工程
- 小例子
- 基本操作
- 配置数据库
- 创建应用
- 定义模型
- 在数据库中生成数据表
- 测试数据操作
- 添加数据
- 查询数据
- 修改数据
- 删除数据
- 关联数据表数据
- 添加数据
- 查找特定集合
- 启动服务器
简介
尝试一下用python写网页,选择Django是因为它用的MVC框架,对于之前有了解的我来说,比较易上手。废话不多说。
安装
已经安装好python之后,在cmd中可以直接pip安装。
我直接安装的是2.1版本
pip install Django==2.1
之后可以进入python环境测试一下:
在cmd中直接输入python,然后输入
import django
django.get_version()
即可以看到版本号
开始创建工程
首先,在合适的位置新建一个文件夹。
然后在cmd中cd到文件夹下的位置(如果在D盘先直接输入d:,然后在进行cd D:…)
然后输入
django-admin startproject project
等待一会儿没有什么提示内容,我们可以看到文件夹下生成了新的文件。
简单说明一下文件的用途
文件 | 用途 |
manage.py | 一个命令行工具,可以使我们用多种方式对Django进行交互 |
init.py | 一个空文件,告诉python这个目录应该被看作一个python包 |
settings.py | 项目的配置文件 |
urls.py | 项目的ULR的声明 |
wsgi.py | 项目与WSGI兼容的Web服务器入口 |
小例子
基本操作
配置数据库
Django默认使用sqllite,这个在setting里面可以看到。我们需要将他更改成MySQL。
首先打开project里面的_init_.py 写入两行代码(没有安装pymysql的先pip install pymysql)
import pymysql
pymysql.install_as_MySQLdb()
之后我们在settings,py ,里面找到DATABASES。先把第一行sqllite3名字换成MySQL
'ENGINE': 'django.db.backends.mysql',
下面一行名字是要数据库的名字,目前我们还没有建数据库,下一步在cmd中创建数据库。
注意:MySQL没启动的先net start mysql57
启动一下,mysql57是名字,可能每个人的不太一样。
启动后输入
创建数据库:
之后再回到settings.py里面,继续根据自己的信息完善配置:
创建应用
在一个项目中可以创建多个应用(应用之间相互不影响),每个应用进行一种业务的处理。
打开cmd之后,cd进入刚开始创建的project目录。
执行python manage.py startapp myapp1
myapp1是应用名,之后可以在project中看到新生成的文件夹。
其中
文件名 | 作用 |
admin.py | 站点配置 |
model.py | 模型 |
views.py | 视图 |
之后想使用应用的话需要激活(将应用配置到项目里)。
在settings里找到INSTALLED_APPS,将自己新建的app名加到后面。
定义模型
有一个数据表就对应一个模型。
在model.py文件中定义模型。一般需要先引入包,一般创建完文件里第一句就已经引用了。
主键是自动生成的。
在数据库中生成数据表
首先生成迁移文件,执行
python manage.py makemigrations
此时只是生成迁移文件,并没有生成数据表。
之后,执行迁移将会生成表。
执行:python manage.py migrate
之后在MySQL里先输入use 表名,然后再show tables就可以看到生成了新表。
还可以查看一下表的内容:
其中可以发现,表名加上了工程名。
测试数据操作
可以不写代码用cmd 进行测试。
首先进入环境python manage.py shell
之后引入一些包:
from myapp1.models import Classha,Students
from django.utils import timezone
from datetime import *
然后查询所有数据
类名.objects.all()
Classha.objects.all()
添加数据
(创建模型类的对象实例)
创建对象:
对象名=
Classha1 = Classha()
Classha1.Cname = "django1"
Classha1.Cdate = datetime(year=2020,month=2,day=1)
Classha1.Cnember = 5
Classha1.isDelete = False
Classha1.save() #存数据
另一种方法:
S1= Classha1.students_set.create(sname = "holly",sgender=True,sage = 40,scontent = "sdfds",isDelete = False, )
不用save直接就添加上了。
查询数据
之后再进行查询就能看到已经写入一条数据:
如果想单独选出来某一条数据,
Classha.objects.get(pk=1)
#或者
a = Classha.objects.get(pk=1)
a
修改数据
模型对象名.属性 = 新值
模型对象名.save()
注意:有的时候找不到对象,可以先再写一下:
模型对象名 = Classha.objects.get(pk=1)
再进行修改
删除数据
模型对象名.delete()
这个不需要save,直接就删除了。
关联数据表数据
添加数据
查找特定集合
对象名.关联的类名小写_set.all()
启动服务器
格式:
python manage.py runserver ip:port
ip不写的话是代表本机,端口号默认8000
这是一个python写的轻量级服务器,只在开发中使用。
在网页中输入网址即可看到:
激动的心 颤抖的手
hello world!