## 1.安装django
pip3 install django
2.创建项目
/Library/Frameworks/Python.framework/Versions/3.11/bin/django-admin startproject mysite
默认文件目录
mysite
├── manage.py # 项目管理、启动项目、新建APP
└── mysite
├── __init__.py
├── asgi.py # 接收网络请求
├── settings.py # 项目配置*****
├── urls.py # URL 和函数对应的关系*******
└── wsgi.py。 # 接收网络请求
3.APP
- 项目
- app 用户
一个app表示一个模块
app01
├── __init__.py
├── admin.py # django默认提供后台管理
├── apps.py # 启动类
├── migrations # 数据库变更记录
│ └── __init__.py
├── models.py # 对数据库操作 ********
├── tests.py
└── views.py # 函数 ******
// 创建APP
python3.11 manage.py startapp app01
4.快速上手
注册app
# settings.py
INSTALLED_APPS = [
...
'app01.apps.App01Config'
]
url 和 视图函数的对应关系
# urls.py
urlpatterns = [
# path('admin/', admin.site.urls),
path('index/', views.index),
]
编写视图函数
# app01-views
from django.shortcuts import render, HttpResponse
# Create your views here.
def index(request):
return HttpResponse('欢迎')
![[截屏2023-06-18 19.16.16.png]]
4.1 新增页面
url-函数
函数
4.2 templates 模版
- 存放html文件的地方
../APP目录/templats - 根据APP的注册顺序去查找html文件
- urls配置好路径 --> views写好函数内容 --> 去templates查找html文件
4.3 静态文件
4.3.1 static目录
|____app01 # app目录
| |____static. #存放目录
| | |____css
| | |____js
| | |____img
| | | |____0.jpg
| |____templates
4.3.2 引用静态文件
- 不建议使用绝对路径引用文件 配置路径
settings.py
# 配置好相对路径
STATIC_URL = '/static/'
引用方式
{% load static %} //相对路径
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户列表</h1>
<img src="{% static 'img/0.jpg' %}"> // 引用方式
</body>
</html>
5.模版语法
传参
def tpl(request):
n1 = "测试"
n2 = ['王1','李四','张三']
n3 = {'name':'罗六','age':10,'friends':n2}
return render(request, "tpl.html", {'n1':n1,
'n2':n2,
'n3':n3})
解析语法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>模版语法</h1>
<div>{{n1}}</div>
<div>{{n2}}</div>
<div>{{n2.0}}</div>
<div>{{n2.1}}</div>
<div>{{n2.2}}</div>
<div>{{n3.name}}</div>
<div>{{n3.age}}</div>
<div>{{n3.friends}}</div>
<!--for-->
<div>
{% for item in n2 %}
<span>{{item}}</span>
{% endfor %}
</div>
<hr/>
{{n3}}
<div>
{% for item in n3.values %}
{{item}}
{% endfor %}
</div>
<div>
{% for k,v in n3.items %}
<span>{{k}} = {{v}}</span>
{% endfor %}
</div>
<!--if-->
{% if n1 == "测试" %}
{{'滴滴滴滴滴'}}
{% else %}
{{'嘟嘟嘟嘟读'}}
{% endif %}
</body>
</html>
render执行的内容 ![[Drawing 2023-06-18 22.47.22.excalidraw]]
6.请求和响应
7.数据库操作
Djanngo 开发数据库更简单,内部提供ORM框架
![[Drawing 2023-06-19 20.42.39.excalidraw]]
7.1 安装第三方模块
// 1.安装mysql
brew install mysql
// 2.
pip install mysqlclient
7.2 ORM
mr.seven 可以做什么?
- 创建、修改、删除数据库中的表(不用写sql语句),但是不能创建数据库
- 操作表中的数据(不要写sql语句)
7.2.1 自己创建数据库
- 启动mysql服务
- 自带工具创建数据库
mysql -u root -p;
show databases;
CREATE DATABASE database_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
7.2.2 Django 连接数据库
setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
7.2.3 Django 操作表
- 创建
- 修改
- 删除
7.2.4 操作表中的数据
- 添加
- 删除
- 获取
- 更新