- Python知识点:函数、面向对象。
- 前端开发:HTML、CSS、JavaScript、jQuery、BootStrap。
- MySQL数据库。
- Python的Web框架:
- Flask,自身短小精悍 + 第三方组件。
- Django,内部已集成了很多组件 + 第三方组件。【主要】
pip install django
django中项目会有一些默认的文件和默认的文件夹
利用Pycharm + Django搭建一个简单Python Web项目
默认项目的文件介绍:
mysite
├── manage.py 【项目的管理,启动项目、创建app、数据管理】【不要动】【常用!】
├── templates 【通用的templates模板存放】
└── mysite
├── __init__.py
├── settings.py 【项目配置】 【常改!】
├── urls.py 【URL和函数的对应关系】【常改!】
├── asgi.py 【接收网络请求】【不要动】
└── wsgi.py 【接收网络请求】【不要动】
⭐启动django项目
tip:
在开发过程中一般将:图片、CSS、js都当做静态文件处理。
⭐static目录:在app目录下创建static文件夹。
⭐引用静态文件
也可以不这么写,就直接写static/plugins/bootstrap-3. 4 .1/css/bootstrap.css,但这样的话,如果static文件名改了就全部要去手动改,但如果用如图的方式,就不需要一个个去手动改,还是会默认去那个静态文件夹里找。
本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。
Django模板语法的一篇博客
Django模板语法的哔哩哔哩讲解,包含案例,推荐观看
模板语法本质——视图函数的render内部
也推荐看哔哩哔哩对应章节视频
常见是get,get可以理解为明面上给数据
补充:csrf_token的作用
自己创建数据库
django连接数据库:在settings.py文件中进行配置和修改。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'gx_day15', # 数据库名字
'USER': 'root', # 用户名
'PASSWORD': 'root123', # 密码
'HOST': '127.0.0.1', # 那台机器安装了MySQL
'PORT': 3306,
}
}
django操作表
①在models中输入以上语句,数据库中会自动执行以下代码:
create table app01_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(64),
age int
)
②执行命令:
python manage.py makemigrations
python manage.py migrate
修改表
age = models.IntegerField(default=2)
data = models.IntegerField(null=True, blank=True)
表中的数据
#表名.objects.create()
#这是程序员代码端的insert
UserInfo.objects.create(name="武沛齐", password="123", age=19)
UserInfo.objects.create(name="朱虎飞", password="666", age=29)
#如果某个字段有默认值,例age字段有默认值2,那么就算不填,最后会给age一个2
UserInfo.objects.create(name="吴阳军", password="666")
#关注filter,就把id=3的对应数据删了
UserInfo.objects.filter(id=3).delete()
#这是把Department里的所有数据都删掉了
Department.objects.all().delete()
#获取全部数据
data_list = UserInfo.objects.all()
for obj in data_list:
print(obj.id, obj.name, obj.password, obj.age)
#获取某一条数据
data_list = UserInfo.objects.filter(id=1)
print(data_list)
UserInfo.objects.all().update(password=999)
UserInfo.objects.filter(id=2).update(age=999)
UserInfo.objects.filter(name="朱虎飞").update(age=999)