首页 > 编程语言 >Python之Web开发中级教程----创建Django子应用

Python之Web开发中级教程----创建Django子应用

时间:2024-03-15 17:30:37浏览次数:23  
标签:Web Python 数据库 py 视图 Django models book import

Python之Web开发中级教程----创建Django子应用

  1. 基于上一个教程的Django项目(可以先看上一集,链接如下:)

https://mp.csdn.net/mp_blog/creation/editor/136724897

2.创建子应用

python manager.py startapp book

admin.py:跟网站的后台管理站点配置相关。

apps.py:用于配置当前应用的相关信息。

Migrations目录:用于存放数据库迁移历史文件。

models.py:用户保存数据库模型类。

tests.py:用于开发测试用例,编写单元测试。

views.py:用于编写Web应用视图。

3.在项目中注册应用

虽然创建了应用,但还没跟项目工程建立联系。

(1)在项目工程的settings.py中,INSTALLED_APPS项添加应用的配置信息文件apps.py中的Config类

4、建立MVT模型

Tip:

MVT设计模式中的Model, 专门负责和数据库交互.对应(models.py)

由于Model中内嵌了ORM框架, 所以不需要直接面向数据库编程.

而是定义模型类, 通过模型类和对象完成数据库表的增删改查.

ORM框架就是把数据库表的行与相应的对象建立关联, 互相转换.使得数据库的操作面向对象.

不需要定义主键字段, 在生成表时会自动添加, 并且值为自增长.

默认采用sqlite3数据库来存储数据

1)Model

(1)定义模型类

BookManager的数据关系:书籍和书中的人物

BookInfo书籍信息表

字段名

字段类型

字段说明

id

AutoField

主键

name

CharField

书名

id

name

1

西游记

2

三国演义

PeopleInfo人物信息表

字段名

字段类型

字段说明

id

AutoField

主键

name

CharField

人名

gender

BooleanField

性别

book

ForeignKey

外键

id

name

gender

book

1

孙悟空

False

1

2

白骨精

True

1

3

曹操

False

2

4

貂蝉

True

2

(2)编写Models.py的代码

from django.db import models

# Create your models here.

# 准备书籍列表信息的模型类

class BookInfo(models.Model):

    # 创建字段,字段类型...

    name = models.CharField(max_length=10)

# 准备人物列表信息的模型类

class PeopleInfo(models.Model):

    name = models.CharField(max_length=10)

    gender = models.BooleanField()

    # 外键约束:人物属于哪本书

    book = models.ForeignKey(BookInfo,on_delete=models.CASCADE)

(3)Model迁移建表

生成迁移文件:根据模型类生成创建表的语句

python manage.py makemigrations

执行迁移:根据上一个命令生成的语句在数据库中创建表

python manage.py migrate

2)View

(1)定义视图

视图就是一个Python函数,被定义在应用的views.py中.

视图的第一个参数是HttpRequest类型的对象reqeust,包含了所有请求信息.

视图必须返回HttpResponse对象,包含返回给请求者的响应信息.

需要导入HttpResponse模块 :from django.http import HttpResponse

定义视图函数 : 响应字符串OK!给客户端

(2)编写views.py的代码

From Django.shortcuts import render

#导入HttpResponse模块

From Django.http import HttpResponse

#Create your views here

#定义视图函数

Def index(request):

    Return HttpResponse(‘OK!’)

(3)配置URLconf

在项目中定义URLconf 添加

from django.urls import path,include

path(‘’,include(‘book.urls’)),

在应用中定义URLconf 添加 path(‘’,include(‘book.urls’)),

新建urls.py文件,写入如下的代码:

from django.urls import path

from book.views import index

Urlpatterns = [

    Path(‘index/’,index),

]

3)Template

需要漂亮的界面,就采用Template,本项目输出简单,省略Template,可以参见后续教程。

测试:请求访问:http://127.0.0.1:8000/index/

对应的源代码可以在下面的链接下载:

https://download.csdn.net/download/zhengyuanyehit/88971158

标签:Web,Python,数据库,py,视图,Django,models,book,import
From: https://blog.csdn.net/zhengyuanyehit/article/details/136745653

相关文章

  • 基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的日常场景下的人脸检测系统(深度学习模型+PySide6界
    摘要:开发用于日常环境中的人脸识别系统对增强安全监测和提供定制化服务极为关键。本篇文章详细描述了运用深度学习技术开发人脸识别系统的全过程,并附上了完整的代码。该系统搭建在强大的YOLOv8算法之上,并通过与YOLOv7、YOLOv6、YOLOv5的性能比较,展示了不同模型的关键性能指标,如mAP......
  • django实现将后台数据excel文件形式导出
    视图函数export_persons引入导出excle相关库importxlwtdefexport_persons(request):#获取数据库中的所有Project对象persons=m1.Project.objects.all()#创建Excel文件book=xlwt.Workbook(encoding='utf-8',style_compression=0)sheet=book.add_sheet('Sheet',......
  • Python下Django通过SSHTunnel连接ECS上未开通外网地址RDS的解决方案
    在开发过程中,碰到需要在PythonDjango项目中连接到位于ECS上但未开通外网地址的RDS数据库。这种情况下,通过建立SSH隧道来实现连接,确保数据传输的安全性和可靠性。 1、安装sshtunnel包pip3installsshtunnel2、导入SSHTunnelFowarder模块fromsshtunnelimp......
  • 快速上手Python爬虫,轻松掌握技巧!
    很多人都听说过爬虫,我也不例外。曾看到别人编写的爬虫代码,虽然没有深入研究,但感觉非常强大。因此,今天我决定从零开始,花费仅5分钟学习入门爬虫技术,以后只需轻轻一爬就能查看所有感兴趣的网站内容。广告?不存在的,因为我看不见。爬虫只会获取我感兴趣的信息,不需要的内容对我而言只......
  • Python 函数的不定长参数介绍 -- argc/*argcs/**kargcs
    目录一.前言二.Python不定长参数argc/*kargcs简介1.函数不定长参数*args使用2.函数不定长参数**kwargs使用3.函数不定长参数*args和**kwargs只能放在形参的末尾,顺序不能错.三.Python不定长参数argc/*kargcs实战四.Python不定长参数argc/*kargcs总结五......
  • Python3 stdout read readline 阻塞情况简单说明
         Python3stdoutreadreadline阻塞情况简单说明 执行命令行,并获取返回结果。代码1:process=subprocess.Popen(cmd_string,stdout=subprocess.PIPE,\      universal_newlines=True,\      stderr=subprocess.PIPE,\    ......
  • python bytes格式的一些转换
    importbinascii#中文字符串转bytess="中国"b=s.encode("utf-8")print(b)#输出:b'\xe4\xb8\xad\xe5\x9b\xbd'#bytes转字符串,默认utf-8解码print(b.decode())#输出:中国#16进制字符串转byteshex_s="e4b8ade59bbd"b=bytes.fromhex(he......
  • Python的基本语法
    Python的基本语法是学习这门语言的起点。以下是一些关键的语法概念和规则,它们构成了Python编程的基础:1.**缩进**:  -Python使用缩进来定义代码块,而不是使用大括号或其他符号。通常,缩进使用4个空格。  -缩进在定义函数、循环、条件语句等结构时非常重要。  ```py......
  • 基于python+django的协同过滤算法的小说推荐系统
    摘 要随着世界经济信息化、全球网络化的到来推动信息线上管理的飞速发展,为小说推荐的管理起到关件作用。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的小说推荐系统,通过此网站爬虫技术获取数据。当前的银行用户行为管理存在工作效率......
  • RunOnWeb - 创建新协议,支持html调用本地可执行文件,支持浏览器互相调用
     浏览器调用exe?  Yes! 谷歌Chrome启动微软Edge?   Yes!RunOnWeb协议 创建新协议,支持html调用本地可执行文件,支持浏览器互相调用 【最新版本】:Ver1.0.0【更新日期】:2024.3.15【作者】:阿色【下载】点击下载RunOnWeb协议安装程序及源文件:https://......