IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> django之静态文件配置 请求方式 request对象方法 pycharm连接数据库 django连接MySQL 初识ORM -> 正文阅读

[Python知识库]django之静态文件配置 请求方式 request对象方法 pycharm连接数据库 django连接MySQL 初识ORM

一:静态文件配置

1.什么是静态文件?
  • 1.第三方框架
  • 2.css文件
  • 3.js文件
  • 4.图片文件
2.django项目中在哪里存放静态文件?
  • 在项目中创建static(名字必须是static)文件夹,在文件夹中可以按照不同的文件类型再分文件夹 (css,js,img,others)管理文件
3.静态文件如何导入?

1.静态文件资源配置:先到配置文件中把static文件添加到项目的sys.path根目录下

# 接口前缀
STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

2.到html文件中导入静态文件

  • 方法一:正常导入
<link rel="stylesheet" href="/static/bootstrap-3.4.1-dist/css/bootstrap.min.css">
<script src="/static/bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
  • 方法二:动态解析
{% load static %}
<link rel="stylesheet" href="{% static 'bootstrap-3.4.1-dist/css/bootstrap.min.css' %}">

二:请求方式

1.GET请求

特点:

  • 1.朝别人索要数据
  • 2.可以携带额外的无关紧要,大小不超过4KB的数据 (例如:url?x=111&y=222)
  • 3.没有请求体
2.POST请求

特点:

  • 1.朝别人提交数据
  • 2.可以携带额外数据,兵且数据都放在请求体中,数据大小没有限制
3.form表单中的数据请求

1.form表单默认的数据请求方式是get

2.action 数据提交的地址

  • 1.不写时:朝当前页面所在地址提交数据
  • 2.写后缀:/index/ 会自动补全ip和port
  • 3.写网址的全称:https://www.baidu.com

三:request对象方法

1.获取请求方式:request.mothod

2.POST

  • 1.request.POST 获取POST请求发送来的普通数据(不包含文件)
  • 2.request.POST.get() 默认只获取列表中的最后一个数据值
  • 3.request.POST.getlist() 获取键对应的整个列表

3.GET

  • 1.request.GET 获取url后面携带的非敏感数据
  • 2.request.GET.get() 默认只获取列表中的最后一个数据值
  • 3.requeat.GET.getlist() 获取键对应的整个列表

四:pycharm连接数据库

1.步骤:
  • 1.找到database按钮,点击进入
  • 2.找到要连接的数据库,输入用户名,密码,想要连接的数据库名
  • 3.测试连接,如果测试成功的话,点击apply,再点击确认按钮即可
2.简单的数据的增删改查
  • 直接在pycharm中打开表,在表中通过点点点的方式对数据进行操作

五:django连接MySQL

1.配置数据库
  • 第一步:settings.py中配置
DATABASES = {
   'default': {'ENGINE': 'django.db.backends.mysql',
	'NAME': 'dj02',
	'USER': 'root',
	'PASSWORD': 'xxx',
	'HOST':'127.0.0.1',
	'PORT': 3306,
	'CHARSET': 'utf8'
     }  
}
  • 2.第二步:指定MySQL的模块
  • django1.11 版本需要在项目或者应用目录下的__ init __.py 导入模块pymysql
import pymysql
pymysql.install_as_MySQLdb()
  • django2.2 及以上版本只需要使用mysqlclient模块即可

六:初识ORM

1.什么是ORM?
  • 对象关系映射
类			映射成    表
对象   	    映射成    记录
对象点属性     映射成    字段对应的值
2.用ORM编写模型类
class User(model.Model):  # 类似于定义了表名
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=32)
    pwd = models.IntegerField()

注意:主键id也可以不用自己写,ORM会自动帮我面创建一个主键id字段

3.数据库的迁移命令(打死都要给我记住)
  • 1.python38 manage.py makemigrations
  • 2.python38 manage.py migrate
  • 3.上述两天命令也可以在pycham中的Tool中简写成:
    • makemigrations 要改动的app(不写的话,默认所有的app被执行)
    • migtate 要改动的app
4.ORM语法(增删改查)
# 1.查:结果看成是一个列表套数据对象
models.User.objects.filter()
# 如何获取对象 可以使用first()方法 如果没有值会返回None 我们if判断即可

# 2.增
models.User.objects.create()

# 3.改
models.User.objects.filter(id=1).update(name='ming')

# 4.删
models.User.objests.filter(id=3).delete()
5.ORM关联外键字段
  • 1.一对一
  • 外键建在查询频率高的表中
detial = models.OneToOneField(to='AuthorDetail', on_delete=models.CASCADE)
  • 1.一对多
  • 外键建在多的一方
publish = models.ForeignKey(to='Publish',on_delete=models.CASCADE)
  • 1.多对多
  • 外键字段写在任意一张表中,ORM会自动帮你创建第三张表
authors = models.ManyToManyField(to='Ahthors')

作业:

1.路由层代码

from django.contrib import admin
from django.urls import path,re_path
from app01 import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('home/', views.home),
    path('insert/', views.insert),
    re_path('update/(\d+)/', views.update, name='update'),
    re_path(r'^delete/(\d+)/', views.delete, name='delete'),

]

2.视图层代码

from django.shortcuts import render,redirect

# Create your views here.
from app01 import models
def home(request):
    data = models.Student.objects.all()
    return render(request, 'home.html', locals())


def insert(request):
    # 新增数据
    if request.method == 'POST':
        name = request.POST.get('name')
        age = request.POST.get('age')
        hobby = request.POST.get('hobby')
        models.Student.objects.create(name=name, age=age, hobby=hobby)
        return redirect('/home/')
    return render(request, 'insert.html')


def update(request, stu_id):
    if request.method == 'POST':
        name = request.POST.get('name')
        age = request.POST.get('age')
        hobby = request.POST.get('hobby')
        models.Student.objects.filter(pk=stu_id).update(name=name, age=age, hobby=hobby)
        return redirect('/home/')
    stu_obj = models.Student.objects.filter(pk=stu_id).first()
    return render(request, 'update.html', locals())

def delete(request, delete_id):
    models.Student.objects.filter(pk=delete_id).delete()
    return redirect('/home/')

3.最终效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-04 01:07:23  更:2022-09-04 01:09:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 10:30:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码