写在前面:这个专栏专门用来存放我对python Web的学习,是从Web小白开始的学习。其中如果有错误欢迎大家指正。我所参考的学习视频如下:
最新Python的web开发全家桶(django+前端+数据库)_哔哩哔哩_bilibili
这个专栏放在这里,给同样学习python Web的人一个参考,也算是我的学习笔记,仅供大家参考。
说明:django的安装以及mysql的安装配置我全部是按照以上推荐的视频中去做的,在这里不再赘述。
这里是一个备忘录,有关于django项目的启动:
django项目的启动
我使用的是pycharm的社区版,里面找不到视频中老师说的按钮(我不会/(ㄒoㄒ)/~~),然后我就使用命令行来做了。在pycharm中打开Terminal:
我感觉这个就类似于命令行吧。就在这里面写:首先找到django项目存放的位置:
然后输入以下命令(这个跟视频中老师讲的略有不同,因为老师的那个做不出来):
python manage.py runserver
按下回车键之后就可以看到:
点击蓝色的页面链接就可以啦~
django连接数据库mysql
事先说明:在视频中老师讲到,django有自带的orm框架来连接数据库,这里的orm框架就像一个翻译器,我们不需要写sql语言就可以对数据库中的数据进行管理。orm框架可以帮助我们做两件事:
- 实现数据库中表的增加、删除、修改
- 操作表中的数据
首先在找到setting.py文件:
对其中的数据库文件进行配置:
DATABASES = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'数据库名',
'USER':'用户名',
'PASSWORD':'密码',
'HOST':'连接数据库的主机地址',
'POST':端口号(例如:3306),
}
}
django实现数据库类的增加和删除
配置完成后打开models.py,在这个文件里我们可以创建所需要的类:
from django.db import models
# Create your models here.
class userInfo(models.Model):
name=models.CharField(max_length=32)
password=models.CharField(max_length=16)
age=models.IntegerField()
'''
django会自动帮我们将这些语句转换成sql语句
这里就相当于我们在mysql中创建了一个表:
create table app01_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(16),
age int,
)
id那一行是自动生成的,就算我们不写,django也会默认创建。
'''
在做完这些之后,如果我们查看数据库,会发现数据库中还是没有我们刚创建的表,需要在命令行(也就是Terminal中)分别执行两句命令,注意:这两个命令还是要先锁定django项目的位置再输入:
>>>python manage.py makemigrations
>>>python manage.py migrate
然后,就可以在数据库中找到刚刚创建的表啦~
在django中删除表的操作也很简单~只需要将在models.py中所建立的类删掉,然后重新执行以上两条命令行指令就可以了~(想删除表中的某一列也可以采用这种做法哦)
为数据库中已有表添加新列
这里有一个问题:这是一张已有的表,那么如果这张表中已经有了数据,再添加新列时这一列的值都没有怎么办?
django为我们提供了三种解决方法:
- 使用default参数
- 通过命令行指定默认值
- 允许这列属性值为null
先来说第一种,可以直接使用default参数来做:
#例如,age是我们新加在表中的列:
age=models.IntegerField(default=2)
第二种,直接上命令行运行(这里直接视频中老师的截图):
第三种:
age=models.IntegerField(null=True,blank=True)