数据库
数据库服务器的运行
管理员 模式 打开 终端 运行
# 启动服务器
net start mysql
# 停止服务器
net stop mysql
数据库的基本操作命令
用户 root
密码 123456
# 登入数据库管理系统
mysql - u root - p
# 显示 所有数据库
show databases;
# 创建一个新的 数据库 AAA
CREATE DATABASE IF NOT EXISTS AAA
DEFAULT CHARACTER SET utf8 DEFAULT
COLLATE utf8_general_ci;
# 使用数据库 AAA
use AAA;
# 查看表
show tables;
# 查看某个 表单的类
desc app_1_userinfo;
# 查看 表 成员
select * from app_1_userinfo;
# 删除数据库 AAA
drop database AAA;
# 查看数据库端口
show global variables like 'port';
# 退出数据库管理系统
exit;
Django 全家桶
https://www.bilibili.com/video/BV1rT4y1v7uQ?spm_id_from=333.337.search-card.all.click
Django
创建工程目录
确保设置好 python插件环境变量 (系统需要找到 django-admin )
C:\Program Files\Python310\Scripts
DOS模式 进入到工程项目的文件夹中
创建 项目目录 AAA
django-admin startproject AAA
创建应用目录
工程项目目录下运行
python manage.py startapp app_1
创建后需要链接 seting.py
应用目录中添加 网页文件夹 templates
创建后需要链接 seting.py*
templates 用于views 中函数查找 网页文件的目录
应用目录中添加 资源文件夹 static
创建后需要链接 seting.py*
static 用于 html 中函数查找 静态素材文件的目录
html 文件中需要导入static 资源 必须以 / 开头 例如 /static/img/1.jpg
注册 (views)窗口函数 urls.py
from django.contrib import admin
from django.urls import path
from app_1 import views # 导入窗口文件
urlpatterns = [
path('', views.index), # 注册窗口函数
]
响应 views.py
函数 必须 传参 request
HttpResponse响应
直接返回字符串
from django.shortcuts import render, HttpResponse
# 必须转到 urls.py 中注册
def text(request):
return HttpResponse('欢迎')
render响应
直接渲染网页
from django.shortcuts import render
# 必须转到 urls.py 中注册
def index(request):
return render(request, 'index.html')
加载网页 且传入参数 渲染后输出到 request
from django.shortcuts import render
# 必须转到 urls.py 中注册
def index(request):
# 变量
age = 10
# 列表
name = ['名字1', '名字2']
# 字典
v = {'key1': 100, 'key2': '好汉'}
return render(request, 'runoob.html',{
'n1': 10, # 直接数据
'n2': age, # 变量
'n3': name, # 列表
'n4': v, # 字典
})
重定向响应
外部重定向响应
redircet(“www.baidu.com”)
内部重定向
方式一:
from django.http import HttpResponseRedirect
return HttpResponseRedirect('/commons/invoice_return/index/') #跳转到index界面
return HttpResponseRedirect('http://www.baidu.com') # 跳转到外部http
方式二:
from django.shortcuts import redirect
return redirect('/commons/invoice_return/index/') #跳转到index界面
return redirect('http://www.baidu.com') # 跳转到外部http
请求第三方响应 requests (需导入requests库)
req = requests.get("http://www.chinaunicom.com.cn/api/article/NewsByIndex/2/2022/04/news")
data_list = req.json()
return render(request, 'use.html', {'data': data_list})
请求 views.py
获取 请求
request.method
GET 请求
request.GET
POST 请求
request.POST.get("name")
DOM操作(Django的数据库操作)
# ODM前的的初始化操作:
- 必须在 数据库操作 创建一个数据库
- 必须在 setings.py 项目设置 中注册数据库
- 确保你安装了 pymysql 库
- 必须在settings.py同级目录的*init.py*文件中增加下面代码
import pymysql pymysql.install_as_MySQLdb()
定义 数据库表 models.py
# 自动创建 ID列 值 自增
# 参数说明 :default 默认值 max_length 最大长度
class UserInfo(models.Model):
name = models.CharField(max_length=32) # 字符型
password = models.CharField(max_length=64)
age = models.IntegerField()# 数值型
# 在表中新增列 ,由于已存在列中可能有数据,所以新增列必须指定默认值:
age = models.IntegerField(default=0)
# 或者:
age = models.IntegerField(null = True,blank = True )
创建数据表
# 工程项目 目录下运行
python manage.py makemigrations
python manage.py migrate
定义好的表名为 应用名称+类名
例如: app_1_UserInfo
使用 数据库表 views .py
# 导入 数据表函数
from app_1.models import UserInfo
# 创建
UserInfo.objects.create(name="吴博文")
# 删除
UserInfo.objects.filter(id=2).delete() # 根据筛选条件删除
UserInfo.objects.all().delete() # 删除所有
# 更新
UserInfo.objects.filter(id=2).update('password' = 999) # 根据筛选条件更新密码
UserInfo.objects.all().update('password' = 999) # 更新所有人的密码
# 获取
UserInfo.objects.filter(id=2) # 根据筛选条件获取(返回一个表类)
UserInfo.objects.filter(id=1).first() # 获取 id为 1第一个的数据
UserInfo.objects.all() # 获取所有(返回一列 表类)
HTML 数据的处理
接收窗口文件发送的数据 并 处理
接收数字,字符串,变量,列表,字典
{{ n1 }}
接收列表的值
{{ n2.1 }}
接收字典的值
{{ n3.key }}
for 语句
列表,元组:
{% for i in n1 %}
<div>{{ i }} </div>
{% endfor %}
字典: n3.key , n3.values , n3.items
{% for i ,j in n3.items %}
<div>{{ i }} </div>
<div>{{ j }} </div>
{% endfor %}
if 语句
{% if in1 == 'xxx' %}
<div> 满足条件选项 </div>
{% elif in1 == 'yyy'%}
<div> 下一个选项 </div>
{% else %}
<div> 上面都不可能 </div>
通过form 表单发送数据 并 处理
实现: form 荣国POST请求 发送给本网页并显示出来
form表单中必须添加 csrf_token 安全验证
<h1>Django练习</h1>
<!-- 接收 窗口 数据 -->
<h1>{{a}}</h1>
<!-- POST发送数据 -->
<form method="post" action="">
<!-- csrf_token 安全验证 -->
<!-- 响应函数前加入 修饰符 @csrf_exempt 可以免去POST 验证 -->
{% csrf_token %}
<input type="text" name="name" value="Mickey">
<input type="submit" value="Submit">
</form>
view.py 窗口文件处理
def index(request):
# 如果是 POST 请求 就吧POST请求 送来的name属性值送给index 同事渲染index.html
if request.method == 'POST':
name = request.POST.get('name')
return render(request, 'index.html', {'a': name})
# 否者 就正常执行
a = '数据链接HTML成功'
return render(request, 'index.html', {'a': a})
超级链接处理流程
实现: index.html 点击 a 标签(超级链接) 跳转到 use.html
index.html 中设置 a 标签
<!-- a 标签以 GET 请求发送 -->
<a href="use">
<button type="button" class="btn btn-primary btn-lg">Djangoc测试</button>
</a>
urls.py 中注册 GET 请求
urlpatterns = [
path('use/', views.use),
]
views.py 中数据处理
# 跳转到 use.html
def use(request):
return render(request, 'use.html')
html 引入 static 素材目录
在head 中注册:
{% load static %}
在body 中使用:
href = "{% static 'img/xxxxx.css %}"
src = "{% static 'img/xxxxx.png %}"
设置 seting.py
# seting.py 中 链接新的 app
INSTALLED_APPS = [
'app_1.apps.App1Config',
]
# 链接数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 使用哪个数据库引擎
'NAME': 'aaa', # 新建的 数据库名字
'USER': 'root', # 用户名(注意 区分大小写)
'PASSWORD': '123456', # 密码
'HOST': '127.0.0.1', # 哪台机器 (本机)
'POST': 3306, # 端口
}
}
# 链接网页文件目录(默认 TEMPLATES)
TEMPLATES = ........
# 链接静态素材文件目录(默认 static)
STATIC_URL = 'static/'
# 中文模式
LANGUAGE_GODE = 'zh-hans'
启动服务器
# 工程项目 目录下运行
# 启动 服务器 后面数字为 端口号
python manage.py runserver 8080
ModelForm
Ajax 请求
使用jQuery
发送 ajax 请求
$.ajax(
//发送数据{
url:"发送的地址",
type:"post",//get
data:{
ni:123,
n2:456
},
//接收数据
success:function(res){
console.log(res)
}
}
)
响应
函数前加入 修饰符 @csrf_exempt 可以免去POST 验证
from django.views.decorators.csrf import csrf_exempt
# 导入json模块
import json
# 导入 json 响应模块
# from django.http import JsonResponse
# 免验证
@csrf_exempt
def use(request):
# 省略了 POST和GET 请求的 if判断处理 时候时补上
print (request.POST)
data = {"status":True,'data':[11,22,33,44]}
# 转换为 json 格式的数据 用于返回
json_s = json.dumps(data)
return HttpResponse(json_s)
# 或者也可以直接导出 json格式数据
#return JsonResponse(data) (常用)
前端使用json格式的数据 需要进行转换 使用jQuery 的函数声明 dataType:“JSON”
图标展示
highchart 国外
echarts 国内
下载echarts 并链接
查看使用文档
l利用Ajax 请求并获取数据 放入echarts 展示