pip install django
# 已经进行了环境变量配置
django-admin.exe startproject 项目名称
mysite
- manage.py 【项目管理,启动项目、创建APP、数据管理】- 不修改,常用
- mysite
- __ init __.py
- settings.py 【项目配置文件】- 常常操作
- urls.py 【URL和函数的对应关系】- 常常操作
- asgi.py 【接收网络请求「异步式」】- 不修改
- wsgi.py 【接收网络请求「同步式」】- 不修改
1. APP 的例子
项目
- app,用户管理 【表结构、函数、HTML模板、CSS】
- app,订单管理 【表结构、函数、HTML模板、CSS】
- app,后台管理 【表结构、函数、HTML模板、CSS】
- app,网站 【表结构、函数、HTML模板、CSS】
- app,API 【表结构、函数、HTML模板、CSS】
- …
注意,我们开发比较简洁,用不到多 APP ,通常情况下,项目创建一个 APP 即可。
2. 创建 APP,在终端输入:
python manage.py startapp app01
3. APP 默认文件介绍
- app01
- __ init __.py
- admin.py【固定,不用动】 django默认提供了admin后台管理
- apps.py 【固定,不用动】 app启动类
- migrations 【固定,不用动】 数据库字段变更记录
- __ init __.py
- models.py 【重要】 对数据库进行操作
- tests.py【固定,不用动】 单元测试
- views.py 【重要】 函数
1. 注册 app 【setting.py】
2. 编写 URL 和视图函数的对应关系 【urls.py】
3. 编写视图函数 【views.py】
4. 启动 Django 项目
命令行启动
python manage.py runserver
1. templates 模板
2. 静态文件
在开发过程中,一般将 「图片、CSS、js」都会当作静态文件处理。
(1)在 app 目录下创建static文件夹
(2)引用静态文件
1. 本质:在 HTML 中写一些占位符,由数据对这些占位符进行替换和处理。
2. 案例:伪联通新闻中心
(1)在 urls.py 创建函数的对应关系
(2)在 views 中编写函数
(3)在 templates 的 news.html 编写模板语法
(4)页面展示
1.
2. 案例:用户登录
(1)发生如下错误,只需要在 form 表单中伪造跨站请求 {% csrf_token %} 。
(2)最终代码:
(3)效果展示
ORM
- 创建、修改、删除数据库中的表;(不用写SQL语句)【无法创建数据库】
- 操作表中的数据(不用写SQL语句)。
1. 安装第三方库
pip install mysqlclient==1.4.1
2. 创建数据库
net start mysql
mysql -u root -p
create database gx DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
3. django 连接数据库
在 settings.py 文件中进行配置和修改。
更改默认 DATABASES :
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql', # 引擎'NAME': 'gx', # 数据库名字'USER': 'root', # 用户名'PASSWORD': '123456', # 密码'HOST': '127.0.0.1', # 哪台机器安装了MySQL - 本机'PORT': '3306',}
}
4. django 创建表
(1)在 models.py 文件中:
等同于:
create table app01_userinfo(id bigint auto_increment primary key, # django自动添加name varchar(32),password varchar(64),age int
)
(2)在 pycharm 终端输入,注意, app 需要提前注册:
python manage.py makemigrations
python manage.py migrate
至此,表已经创建成功。
5. django 修改表
(1) 删除某个列:
python manage.py makemigrations
python manage.py migrate
(2)添加某个列:
- 在 python 代码中输入该列;
- 在 pycharm 终端输入:
python manage.py makemigrations
python manage.py migrate
(3)但是,对于 添加列 需要注意,由于已存在的列可能已有数据,所以新增列必须要指定对应的数据:
age = models.IntegerField(default=2)
data = models.IntegerField(null=True, blank=True)
总结:对表结构进行调整
- 在 models.py 文件中进行操作类;
- 输入命令:
python manage.py makemigrations
python manage.py migrate
6. 操作表中的数据
1. 展示用户列表
2. 添加用户
(1)在 urls.py 中添加 path:
(2)编写函数 info_add :
(3)编写 info_add.html ,注意要有 {% csrf_token %} ,使得跨站网址请求能够成功。
(4)效果展示
3. 删除用户
(1)在 urls.py 添加 path:
(2) 在 views.py 中编写相关代码:
(3)结果展示:(当然在 /info/list.html 中也做了修改)
参考资料: