流程总览
今天给大家分享一下Django的技术,如上是今天分享的内容,一起相互学习吧!
安装Django
pip install -U django
python -m django --version
如上,安装并更新django,查看版本为3.0.5
创建工程
cd G:360MoveDataUsersAdministratorDesktopDjangoProject
django-admin startproject project
tree . /F
如上图,进入到指定目录,创建工程,并查看工程的目录结构。
配置数据库
查看官方文档
查看官方文档:https://docs.djangoproject.com/en/3.0/ref/databases/#mysql-notes
主要有以下注意点:
1、Django supports MySQL 5.6 and higher.
2、Django requires mysqlclient 1.3.13 or later.
3、mysqlclient is a native driver. It’s the recommended choice.
4、You can create your database using the command-line tools and this SQL:
CREATE DATABASE <dbname> CHARACTER SET utf8;
5、Connecting to the database:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
根据官方文档安装mysql
现在,动手实操一下:
先在centos7上安装最高版本的mysql 8(通过下载mysql的repo源的方式):
rpm -Uvh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum repolist all | grep mysql
vi /etc/yum.repos.d/mysql-community.repo
查看将要安装的版本:
yum repolist enabled | grep mysql
安装:
yum install -y mysql-community-server
启动:
systemctl start mysqld
开机自启动:
systemctl enable mysqld
systemctl daemon-reload
查看密码:
cat /var/log/mysqld.log
pwd如下图:nyKcqlrd=6+q
登陆(输入上面的随机密码):
mysql -uroot -pnyKcqlrd=6+q
更改密码策略:
set global validate_password.policy=0;
set global validate_password.length=1;
修改mysql的root密码(设置为yeqinfang):
alter user 'root'@'localhost' identified by 'yeqinfang';
更改默认端口的文件:
vi /etc/my.cnf
重启生效:
systemctl restart mysqld
查看端口:
show global variables like 'port';
创建数据库:
CREATE DATABASE dbtest CHARACTER SET utf8;
关闭防火墙:
systemctl disable firewalld
systemctl stop firewalld.service
systemctl status firewalld
允许root在其他地方访问
use mysql;
update user set Host='%' where User='root';
django配置数据库
在配置文件进行如下配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 将sqlite3更改
'NAME': 'dbtest', # 将os.path.join(BASE_DIR, 'db.sqlite3')更改为数据库名
'USER': 'root',
'PASSWORD': 'yeqinfang',
'HOST': '192.168.31.101',
'PORT': '3306',
}
}
创建应用
1、打开cmd,cd到manage.py同级目录下,执行:
python manage.py startapp myAPP
根据提示,继续安装客户端:
pip install -U mysqlclient
再去创建应用,接着运行如下命令:
python manage.py startapp blog
激活应用
在settings.py文件中,将myAPP应用,加入到 INSTALLED_APPS选项中,直接在最后一行添加 myAPP,如下:
定义模型
一个表对应一个模型,在models.py中添加模型:
class Grades(models.Model):
gname = models.CharField(max_length=20)
gdate = models.DateTimeField()
ggirlnum = models.IntegerField()
gboynum = models.IntegerField()
isDelete = models.BooleanField(default=False)
class Students(models.Model):
sname = models.CharField(max_length=20)
sgender = models.BooleanField(default=True)
sage = models.IntegerField()
scontend = models.CharField(max_length=20)
isDelete = models.BooleanField(default=False)
#关联外键
sgrade = models.ForeignKey('Grades',on_delete=models.CASCADE)
在数据库中生成数据表
1、生成迁移文件:
在manage.py目录下执行
python manage.py makemigrations
2、执行迁移
python manage.py migrate
测试数据库
在manage.py的目录下执行:
python manage.py shell
引入包:
from myAPP.models import Grades,Students
from django.utils import timezone
from datetime import *
Grades.objects.all()
创建一条数据:
grade1 = Grades()
grade1.gname = 'python007'
grade1.gdate = datetime(year=2017,month=7,day=17)
grade1.ggirlnum = 3
grade1.gboynum = 70
grade1.save()
启动服务
python manage.py runserver 127.0.0.1:8000
登陆查看
创建管理员用户(root/yeqinfang):
python manage.py createsuperuser
打开页面(127.0.0.1:8000/admin)如下
输入账号密码:root/yeqinfang
如上,我们已经起了服务,并且能够登陆,现在,我们去配置自己的页面:
修改admin.py文件,添加:
from .models import Grades,Students
#注册
admin.site.register(Grades)
admin.site.register(Students)
接着重启服务,刷新页面
咋们的应用已经添加成功,我们查看我们的数据:
点击上图的Grades:
点击上图的grades object
如图,我们已经能够显示原先添加的一些数据。至此,我们的流程已经能够跑通。后面我们再学习MTV模型的编程。