本文主要是介绍杂货铺 | Django初始(补档),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 📚安装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)
- 添加/新建数据
这篇关于杂货铺 | Django初始(补档)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!