文章目录

安装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)

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: