01.初识django

139 阅读2分钟
	## 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-函数
函数

截屏2023-06-18 19.16.16.png

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 操作表中的数据

  • 添加
  • 删除
  • 获取
  • 更新