Django快速入门学习笔记

1.创建项目

默认项目的文件介绍:

manage.py:【项目的管理,启动项目、创建app、数据管理】【不要动】
__init__.py:
settings.py:【项目配置:链接数据库、注册app等】【***常常修改***】
urls.py:【url和函数的对应关系】【***常常修改***】
asgi.py:【接收网络请求】【不要动】
wsgi.py:【接收网络请求】【不要动】

2.APP

-项目
	-app,用户管理【表结构、函数、HTML模板、css】
	-app,订单管理【表结构、函数、HTML模板、css】
	-app,后台管理【表结构、函数、HTML模板、css】
	-app,网站【表结构、函数、HTML模板、css】
	-app,API【表结构、函数、HTML模板、css】
	..
注意:我们开发比较简洁,用不到多app,一般情况下,项目创建一个app即可。

创建app命令:python manage.py startapp app-name
多app:

│  manage.py
├─demo
│  │  asgi.py
│  │  settings.py
│  │  urls.py【url->函数】
│  │  wsgi.py
│  └─__init__.py
├─demo2
│  │  admin.py【固定,不用动】django默认提供了admin后台管理
│  │  apps.py【固定,不用动】app启动类
│  │  models.py【***重要***】对数据库操作
│  │  tests.py【固定,不用动】单元测试
│  │  views.py【***重要***】函数
│  │  __init__.py
│  └─migrations【固定,不用动】数据库变更记录
│          __init__.py
└─templates

3.快速上手

  • 确保app已注册【settings.py】
    在这里插入图片描述
  • 编写URL和视图函数对应关系【urls.py】
    在这里插入图片描述
  • 编写视图函数【views.py】在这里插入图片描述
  • 启动django项目
    • 命令行启动
    python manage.py runserver
    
    • Pycharm启动在这里插入图片描述

3.1 再写一个页面

 - url -> 函数
 - 函数

在这里插入图片描述

3.2 templates模板

在这里插入图片描述

3.3 静态文件

在开发过程中一般将:

  • 图片
  • CSS
  • js

当作静态文件处理

3.3.1 static目录

在app目录下创建static文件夹在这里插入图片描述

3.3.2 引入静态文件

在这里插入图片描述

4. 模板语法

本质上:在HTML中写一些占位符,由数据对这些占位符进行替换和处理。
在这里插入图片描述视图函数的render内部:
1.读取含有模板语法的HTML文件
2.内部进行渲染(模板语法执行并替换数据),最终得到,只含有HTML标签的字符串
3.将渲染(替换)完成的字符串返还给用户浏览器。

案例:伪联通消息中心

在这里插入图片描述在这里插入图片描述

5. 请求和响应

在这里插入图片描述

关于重定向:
在这里插入图片描述

案例:用户登录

在这里插入图片描述
在这里插入图片描述

6. 数据库操作

  • MySQL数据库 + pymysql
import pymysql
# 1.连接MySQL
conn = pymysql.connect(host="127.0.0.1", port = 3306, user = "root", password="root123",charset="utf8",db="unicom")

# 2.发送指令
cursor.execute("insert into admin(username,password,mobile) values ('wupeiqi','qwe123','15155555555')")
conn.commit()

# 3.关闭
cursor.close()
conn.close()
  • Django开发操作数据库更简单,内部提供了ORM框架

在这里插入图片描述

6.1 安装第三方模块

pip install mysqlclient

6.2 ORM

ORM可以帮助我们做两件事:

  • 创建、修改、删除数据库中的表(不用写SQL语句)【无法创建数据库】
  • 操作表中的数据(不用写SQL语句)

6.21 自己创建数据库

  • 启动MySQL服务(或者其他数据库,例如Oracle、sqlite3)
  • 自带工具创建数据库
create database gx_day15 DEFAULT CHARSET uft8 COLLATE utf8_general_ci;

使用Django自带sqlite3数据库时(创建Django app时会自动生成一个db.sqlite3,但是此时是空白的,因为没有进行迁移):

  • 1)在命令行中迁移Django自带的表
python manage.py migrate
  • 2)创建一个admin管理后台
python manage.py createsuperuser

admin是Django自带的后台管理系统,可以通过它对数据库进行增删改查操作,被授权的用户才可以直接在admin管理数据
urls.py中默认有admin路由
在这里插入图片描述
在这里插入图片描述

6.2.2 Django连接数据库

在settings.py文件中进行配置和修改,默认使用的是sqlite3数据库在这里插入图片描述
采用MySQL连接时的配置:
在这里插入图片描述

6.2.3 Django操作表

  • 创建表
  • 删除表
  • 修改表

创建表:在models.py文件中:
在这里插入图片描述

ORM会根据这个类创建一张表:

create table app01_userinfo(
	id bigint auto increment primary key, /*如果没有主键,ORM底层自动添加一个自增主键*/
	name varchar(32),
	password varchar(64),
	age int
);

执行命令:

python manage.py makemigrations
python manage.py migrate

注意:app需要提前注册在这里插入图片描述

在表中新增列时,由于已存在列中可能已有的数据,所以新增列必须要指定新增列对应的数据:

  • 1.手动输入一个值
  • 设置默认值
age = models.IntegerField(default=2)
  • 允许为空
data = models.IntegerField(null=True, blank=True)

以后在开发中如果想要对表结构进行调整:

  • 在models.py文件中操作类即可
  • 命令
python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

6.2.4 操作表中的数据

# ***1.新建***
# Department.objects.create(title="销售部")
# Department.objects.create(title="IT部")
# Department.objects.create(title="运营部")
# UserInfo.objects.create(name="吴佩琦",password="123",age=19)
# UserInfo.objects.create(name="朱虎飞",password="666",age=29)
# UserInfo.objects.create(name="吴阳军",password="666")

# ***2.删除***
# UserInfo.objects.filter(id=3).delete()
# Department.objects.all().delete()

# ***3.获取数据***
# 获取到的数据是QuerySet类型,相当于列表[对象,对象,...]
# 3.1获取符合条件的所有数据
# data_list = UserInfo.objects.all()
# for obj in data_list:
#     print(obj.id, obj.name, obj.password, obj.age)

# data_list = [对象,],只有一个对象的QuerySet
# data_list = UserInfo.objects.filter(id=1)
# print(data_list)
# 3.2获取第一条数据【对象】
# row_obj = UserInfo.objects.filter(id=1).first()
# print(row_obj.id, row_obj.name, row_obj.password, row_obj.age)

# ***4.更新数据***
# UserInfo.objects.all().update(password=999)
# UserInfo.objects.filter(id=2).update(age=999)
# UserInfo.objects.filter(name="朱虎飞").update(age=999)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值