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笔记 -> 正文阅读

[Python知识库]梅科尔工作室-李庆浩 Django笔记

1.Django各模块作用

main.py

用于存放功能类函数

urls.py作为路由,分发功能用,根据路径名,调用相应的视图函数。

views.py

保存视图函数

models.py

负责在数据库创建表格,添加字段名称

templates文件夹

放置html文件

static文件夹

放置静态文件

2.Django实战项目过程

2.1配置路由urls

(1)首先创建一个app。进入Terminal。

输入创建app的代码命令,如下

misterwu为创建的app的名字,注意更改自己想要的名称

python manage.py startapp misterwu

然后会出现一个misterwu文件。

然后到主文件下的settings.py中找到INSTALLED_APPS下添加app。

在主文件下的urls.py中添加以下代码。

在misterwu文件夹下新建一个urls.py文件。

?

?在这个urls.py中写以下代码

?2.2展示html页面

在mistrrwu文件夹下的urls.py中继续书写代码,如下

此处会出现报红,因为我们还没创建 home方法,接下来创建。

在views.py中建立一个home方法

?然后在misterwu下新建一个templates文件夹,然后再新建一个home.html.

在home.html中写入想要展示的东西。

例如:

然后在Terminal中执行如下代码

python manage.py runserver 127.0.0.1:8000

然后点击出现的网址

?接着就可以在网页中看见自己想要展示的东西了。

?显示页面的整个过程是,点击这个网址,会先访问主文件下的urls.py,然后根据写入的路径跳转到misterwu下的urls.py,然后根据现在请求的路径地址,会调用views下的home方法,进入到views.py下,然后利用home方法展示我们的web页面。

?2.3创建公共html模板

进入bootstrap官网:Bootstrap中文网Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。目前,Bootstrap最新版本为3.0 。Bootstrap中文网致力于为广大国内开发者提供详尽的中文文档、代码实例等,助力开发者掌握并使用这一框架。https://www.bootcss.com/Bootstrap是Twitter推出的一个用于前端开发的开源工具包。它由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架。目前,Bootstrap最新版本为3.0 。Bootstrap中文网致力于为广大国内开发者提供详尽的中文文档、代码实例等,助力开发者掌握并使用这一框架。https://www.bootcss.com/然后点击自己想要的html模板

?选择html4或html5中文文档,进入之后,点击中文文档,一直下滑,找到入门模板并复制

?然后将复制的模板用于自己html中

2.4展示导航信息

还是进入刚刚的中文文档里面,点击组件里面的导航,及Navbar,然后进行复制案例,运用到自己的html网页中。

2.5接口介绍

接口是用来向html传送数据的,可以从网上直接搜索可用的接口,如github的一个接口,如下:

里面直接有存储的数据信息,同时也可以自己用自己创建的数据库的接口。

https://api.github.com/users?since=0

?2.6接口请求和解析

调用接口和请求数据需要在views.py中设置。

请求数据之前首先要引入requests模块

解析数据需要引入json模块

json模块不需要下载,系统自带的,而requests需要安装,安装代码为

pip install requests

示例如下:

?在html中显示接收到的数据用两个花括号{{api}],括号内是刚书写的键值对的键的名字。

如下所示:

网页展示如下:

3.Django的基础使用

3.1请求与响应

请求与相应的步骤和第二部分Django实战项目过程中的配置路由和显示页面步骤一样,主要是明白如何通过配置文件里的路由然后将创建的html页面在网页上显示出来。

3.2模型与后台

主要是通过model.py创建数据表,其中可以添加需要的字符段。

通过models.py创建数据表之前首先要通过pymysql连接数据库。

然后在models.py中输入如下示例代码:

# models.py
from django.db import models
 
class Test(models.Model):
    name = models.CharField(max_length=20)

以上的类名代表了数据库表名,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。

然后通过命令端输入以下命令进行表的创建。

TestModel为app的名称,注意根据自己创建的app名称进行修改。

python manage.py makemigrations  # 让 Django 知道我们在我们的模型有一些变更
python manage.py migrate   # 创建表结构

之后就可以在mysql中看到我们创建成功的数据表了,如图所示:

3.3视图和模板

视图就是在views.py下通过创建类或者方法显示页面,也可以调用接口,解析数据。

如下图是调用接口实例,用方法显示页面

模板即html模板,可以自行设计,也可以在网站上引用,例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<table border="1">
    <thead>
    <tr>
        <td>id</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>
        <td>年纪</td>
    </tr>
    </thead>
    <tbody>
    {% for student in student_queryset %}
        <tr>
            <td>{{ student.id }}</td>
            <td>{{ student.name }}</td>
            <td>{{ student.age }}</td>
            <td>{{ student.gender }}</td>
            <td>{{ student.grade }}</td>
        </tr>
    {% endfor %}
 
 
    </tbody>
</table>
</body>
</html>

?3.4表单操作语句

3.4.1增加

models.表名.objects.create(键值对) 

示例:

from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    books = models.Book.objects.create(title="如来神掌",price=200,publish="功夫出版社",pub_date="2010-10-10") 
    print(books, type(books)) # Book object (18) 
    return HttpResponse("<p>数据添加成功!</p>")

3..4.2查找

(1)使用 all() 方法来查询所有内容

返回的是 QuerySet 类型数据,类似于 list,里面放的是一个个模型类的对象,可用索引下标取出模型类的对象。

models.表名.objects.all() 

示例:

from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    books = models.Book.objects.all() 
    print(books,type(books)) # QuerySet类型,类似于list,访问 url 时数据显示在命令行窗口中。
    return HttpResponse("<p>查找成功!</p>")

(2)fill方法

filter() 方法用于查询符合条件的数据。

返回的是 QuerySet 类型数据,类似于 list,里面放的是满足条件的模型类的对象,可用索引下标取出模型类的对象。

models.表名.objects.filter(条件)

示例:

from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    books = models.Book.objects.filter(pk=5)
    print(books)
    print("//")
    books = models.Book.objects.filter(publish='菜鸟出版社', price=300)
    print(books, type(books))  # QuerySet类型,类似于list。
    return HttpResponse("<p>查找成功!</p>")

(3)exclude() 方法

exclude() 方法用于查询不符合条件的数据。

返回的是 QuerySet 类型数据,类似于 list,里面放的是不满足条件的模型类的对象,可用索引下标取出模型类的对象。

models.表名.objects.exclude(条件)
from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    books = models.Book.objects.exclude(pk=5)
    print(books)
    print("//")
    books = models.Book.objects.exclude(publish='菜鸟出版社', price=300)
    print(books, type(books))  # QuerySet类型,类似于list。
    return HttpResponse("<p>查找成功!</p>")

(4)get() 方法

get() 方法用于查询符合条件的返回模型类的对象符合条件的对象只能为一个,如果符合筛选条件的对象超过了一个或者没有一个都会抛出错误。

 models.表名.objects.get(条件)

示例:

from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    books = models.Book.objects.get(pk=5)
    books = models.Book.objects.get(pk=18)  # 报错,没有符合条件的对象
    books = models.Book.objects.get(price=200)  # 报错,符合条件的对象超过一个
    print(books, type(books))  # 模型类的对象
    return HttpResponse("<p>查找成功!</p>")

(5)order_by() 方法

order_by() 方法用于对查询结果进行排序。

返回的是 QuerySet类型数据,类似于list,里面放的是排序后的模型类的对象,可用索引下标取出模型类的对象。

models.表名.objects.order_by(名称)

示例:

from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    books = models.Book.objects.order_by("price") # 查询所有,按照价格升序排列 
    books = models.Book.objects.order_by("-price") # 查询所有,按照价格降序排列
    return HttpResponse("<p>查找成功!</p>")

(6)reverse() 方法

reverse() 方法用于对查询结果进行反转。

返回的是 QuerySe t类型数据,类似于 list,里面放的是反转后的模型类的对象,可用索引下标取出模型类的对象。

 models.表名.objects.order_by("-price").reverse()

示例:

from django.shortcuts import render,HttpResponse
from app01 import models 
def add_book(request):
    # 按照价格升序排列:降序再反转
    books = models.Book.objects.order_by("-price").reverse()
    return HttpResponse("<p>查找成功!</p>")

更多方法详情见菜鸟教程Django ORM – 单表实例 | 菜鸟教程Django ORM - 单表实例 阅读本章节前你需要先阅读了 Django 模型 进行基础配置及了解常见问题的解决方案。 接下来我们重新创建一个项目 app01(如果之前已创建过,忽略以下操作): django-admin.py startproject app01 接下来在 settings.py 中找到 INSTALLED_APPS 这一项,如下: INSTALLED_APPS = ( 'django.c..https://www.runoob.com/django/django-orm-1.html

3.4.3删除

(1)方式1

使用模型类的 对象.delete()。返回值:元组,第一个元素为受影响的行数。

models.表名.objects.filter(条件).first().delete()

示例:

books=models.Book.objects.filter(pk=8).first().delete()

(2)方式2

使用 QuerySet 类型数据.delete()(推荐)。返回值:元组,第一个元素为受影响的行数。

models.表名.objects.filter(条件).delete()

示例:

books=models.Book.objects.filter(pk__in=[1,2]).delete()

3.4.4修改

(1)方式1

模型类的对象.属性=更改的属性值

模型类的对象.save()

返回值:编辑的模型类的对象。

示例:

# -*- coding: utf-8 -*-
 
from django.http import HttpResponse
 
from TestModel.models import Test
 
# 数据库操作
def testdb(request):
    # 修改其中一个id=1的name字段,再save,相当于SQL中的UPDATE
    test1 = Test.objects.get(id=1)
    test1.name = 'Google'
    test1.save()

(2)方式2

QuerySet 类型数据.update(字段名=更改的数据)(推荐)

返回值:整数,受影响的行数

示例:


# -*- coding: utf-8 -*-
 
from django.http import HttpResponse
 
from TestModel.models import Test
 
# 数据库操作
def testdb(request):
   
    Test.objects.filter(id=1).update(name='Google')
    
    # 修改所有的列
    Test.objects.all().update(name='Google')
    
    return HttpResponse("<p>修改成功</p>")
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:19:02  更:2022-07-17 16:23:29 
 
开发: 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 12:04:36-

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