文章目录
安装django在pycharm创建项目创建app快速上手再写一个页面templates模板静态文件
模板语法请求和响应数据库操作
Python知识点:函数、面向对象。前端开发:HTML、CSS、JavaScript、jQuery、BootStrap。MySQL数据库。Python的Web框架:
Flask,自身短小精悍 + 第三方组件。Django,内部已集成了很多组件 + 第三方组件。【主要】
安装django
pip install django
在pycharm创建项目
django中项目会有一些默认的文件和默认的文件夹
利用Pycharm + Django搭建一个简单Python Web项目
默认项目的文件介绍:
mysite
├── manage.py 【项目的管理,启动项目、创建app、数据管理】【不要动】【常用!】
├── templates 【通用的templates模板存放】
└── mysite
├── __init__.py
├── settings.py 【项目配置】 【常改!】
├── urls.py 【URL和函数的对应关系】【常改!】
├── asgi.py 【接收网络请求】【不要动】
└── wsgi.py 【接收网络请求】【不要动】
创建app
Pycharm的Terminal命令——python manage.py startapp appName一个APP文件夹代表一个模块,可以包括:
快速上手
⭐️确保app已注册 settings.py ⭐编写URL和视图函数对应关系 urls.py ⭐编写视图函数views.py ⭐启动django项目
命令行启动:python manage.py runserver Pycharm启动
再写一个页面
url -> 函数函数
templates模板
tip:
返回简单的字符串——return HttpResponse (“内容”)返回一个网页——return render(request, “xxx.html”)
搭配当前app文件夹之下创建的templates文件夹去找这个语句所提到的HTML文件
优先在根目录里的templates里找(提前先配置,一般默认就会有,不配置即无效)然后再根据app的注册顺序,逐一去每个app的templates里去找。
静态文件
在开发过程中一般将:图片、CSS、js都当做静态文件处理。 ⭐static目录:在app目录下创建static文件夹。 ⭐引用静态文件
也可以不这么写,就直接写static/plugins/bootstrap-3. 4 .1/css/bootstrap.css,但这样的话,如果static文件名改了就全部要去手动改,但如果用如图的方式,就不需要一个个去手动改,还是会默认去那个静态文件夹里找。
模板语法
本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。
Django模板语法的一篇博客
Django模板语法的哔哩哔哩讲解,包含案例,推荐观看
模板语法本质——视图函数的render内部
读取含有模板语法的HTML文件内部进行渲染(即模板语法执行并替换数据)最终得到只包含HTML标签的字符串将渲染替换完成的字符串返还给用户浏览器
简单例子举例: 最后显示结果为: 字典同理,列表里套字典也同理,条件语句也同理,具体可去看一下哔哩哔哩讲解视频
请求和响应
也推荐看哔哩哔哩对应章节视频
常见是get,get可以理解为明面上给数据
案例:用户登录
补充:csrf_token的作用
数据库操作
Django开发操作数据库更简单,内部提供了ORM框架,相当于一个翻译器。 ⭐安装第三方模块:pip install mysqlclient⭐ORM:ORM可以帮助我们做两件事:
创建、修改、删除数据库中的表(不用你写SQL语句)。 【无法创建数据库】操作表中的数据(不用写SQL语句)。
自己创建数据库 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.py文件中
①在models中输入以上语句,数据库中会自动执行以下代码: create table app01_userinfo(
id bigint auto_increment primary key,
name varchar(32),
password varchar(64),
age int
)
最后生成的表名是该app文件夹的名_class后的类名尤其关注:每一个表在创建时都会默认添加一个既是自动递增又是主键的id字段而且打开数据库会发现很多额外的表,那是Django自带的 ②执行命令: python manage.py makemigrations
python manage.py migrate
理解python manage.py makemigrations 和 python manage.py migrate_注意:app需要提前注册。 修改表
①删除字段——直接在models.py里边删,然后再用上边两个命令更新一下②添加字段
在models.py里边添加,然后再用上边两个命令更新一下。在表中新增列时,由于已存在列中可能已有数据,所以新增列必须要指定新增列对应的数据:手动输入一个值设置默认值: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)
推荐文章
发表评论