iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python中如何使用Django框架
  • 102
分享到

python中如何使用Django框架

2023-06-20 17:06:06 102人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章将为大家详细讲解有关python中如何使用Django框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:项目的创建与运行第一次使用 DjanGo ,那么你必须要照顾一些初始设

这篇文章将为大家详细讲解有关python中如何使用Django框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

第一步:项目的创建与运行

第一次使用 DjanGo ,那么你必须要照顾一些初始设置。也就是说,您需要自动生成一些建立 Django
项目的代码。
从命令行 cd 到您要存储代码的目录,然后运行以下命令:

django-admin startproject BookManage

进入项目目录,目录结构如下图:

python中如何使用Django框架

 目录说明:
manage.py :一个命令行工具,可以使你用多种方式对 Django 项目进行交互
内层的目录:项目的真正的Python
__init__.py :一个空文件,它告诉Python这个目录应该被看做一个Python包
settings.py :项目的配置
urls.py :项目的URL声明
wsgi.py :项目与 WSGI 兼容的WEB服务器入口

第二步:应用的创建和使用

(1) 创建第一个应用程序

Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不
是创建目录。
在一个项目中可以创建一到多个应用,每个应用进行一种业务处理
创建应用的命令:

python3 manage.py startapp bookApp

应用的目录结构如下图 :

python中如何使用Django框架

 (2) 编写第一个视图函数

打开文件 bookApp/views.py 并放入以下Python代码:

from django.shortcuts import render# Create your views here.from django.Http import HttpResponsedef index(request):return HttpResponse("图书管理系统")

(3) 路由规则

在 bookApp 目录中创建一个 URLconf ,创建一个名为 urls.py 。

# bookApp/urls.pyfrom django.conf.urls import urlfrom . import viewsurlpatterns = [# 当用户访问bookApp应用的主页时, 执行视图函数index,反向根据名称获取url地址;url(r'^$', views.index, name='index'),]

根据配置文件 BookManage/settings 可知路由查找的主文件是 BookManage/urls.py , 因此在该文件
添加一条 url 规则:

# BookManage/urls.pyfrom django.conf.urls import urlfrom django.contrib import adminfrom django.urls import path, includeurlpatterns = [path('admin/', admin.site.urls),# 当用户访问的url地址以book开头, 请访问bookApp.urls这个url配置文件进行匹配并执行对应的视图函数.url(r'^book/', include('bookApp.urls')),]

include()函数允许引用其他 URLconfs 。

(4) 效果展示

启动服务器

python3 manage.py runserver

python中如何使用Django框架

访问 url 地址: http:// 127.0.0.1:8000/book/ 如果看到主页内容 图书管理系统 即成功

python中如何使用Django框架

第三步: 项目的数据库模型

(1). 数据库创建

MariaDB [(none)]> create database BookManage charset=utf8;

(2). 连接 MySQL 数据库配置

在 settings.py 文件中,通过DATABASES项进行数据库设置
Django 支持的数据库包括: sqlite 、 Mysql 等主流数据库
Django 默认使用 **SQLite** 数据库
Django数据库设置参考文档
其中ENGINE设置为数据库后端使用。内置数据库后端有:
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.sqlite3'
'django.db.backends.oracle'

在 BookManage/settings.py 文件中,通过DATABASES项进行数据库设置:

# .......# 注释之前的sqlite数据库;# DATABASES = {#'default': {#'ENGINE': 'django.db.backends.sqlite3',#'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),#}# }# 添加新的Mysql数据库连接;DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql','NAME': 'BookManage','USER': 'root','PASSWord': 'westos','HOST': 'localhost','PORT': '3306',}}# .......注意: Django 使用 MySQL 数据库需要安装 PyMySQL ,若已经安装请略过。pip install pymysql

打开 BookManage/__init__.py ,写入以下代码导入 pymysql :

import pymysql# MySQLdb只支持Python2.*,还不支持3.可以用PyMySQL代替。pymysql.install_as_MySQLdb()

(2). 创建数据库模型

本示例完成“图书-英雄”信息的维护,需要存储两种数据:图书、英雄

图书表结构设计: 表名: Book
图书名称: title
图书发布时间: pub_date
英雄表结构设计: 表名: Hero
英雄姓名: name
英雄性别: gender
英雄简介: hcontent
所属图书: hbook

图书-英雄的关系为一对多

# bookApp/models.pyfrom django.db import models# Create your models here.class Book(models.Model):# 定义属性:默认主键自增id字段可不写title = models.CharField(max_length=20)pub_date = models.DateTimeField()# 定义默认输出格式def __str__(self):return "%d" % self.title# 自定义对应的表名,默认表名:bookApp_bookclass Meta:db_table = "books"class Hero(models.Model):name = models.CharField(max_length=20)gender = models.BooleanField()content = models.CharField(max_length=100)Book = models.ForeignKey('Book', on_delete=False)def __str__(self):return "%s" % self.name# 自定义对应的表名,默认表名:bookApp_heroclass Meta:db_table = "heros"

(3). 生成数据库表

激活模型:编辑 settings.py 文件,将应用加入到 INSTALLED_APPS 中

# BookManage/settings.py# Application definitionINSTALLED_APPS = [# .......此处省略'django.contrib.staticfiles',# 新添加的app'bookApp',]

生成迁移文件:根据模型类生成 sql 语句

python manage.py makemigrations

产生的迁移文件如下:

python中如何使用Django框架

 执行迁移:执行 sql 语句生成数据表

python manage.py migrate

 数据库中查看数据库表是否创建成功?

$ mysql -uroot -pwestosMariaDB [(none)]> use BookManageMariaDB [BookManage]> show tables;MariaDB [BookManage]> desc books;+----------+-------------+------+-----+---------+----------------+| Field| Type| Null | Key | Default | Extra|+----------+-------------+------+-----+---------+----------------+| id | int(11)| title | varchar(20) | NO| pub_date | datetime| NO| NO| PRI | NULL | auto_increment || | NULL | || | NULL | |+----------+-------------+------+-----+---------+----------------+MariaDB [BookManage]> desc heros;+---------+--------------+------+-----+---------+----------------+| Field| Type| Null | Key | Default | Extra|+---------+--------------+------+-----+---------+----------------+| id | int(11) | NO | PRI | NULL | auto_increment || name | varchar(20) | NO | | NULL | || gender | tinyint(1) | NO | | NULL | || content | varchar(100) | NO | | NULL | || Book_id | int(11) | MUL | NULL | || NO+---------+--------------+------+-----+---------+----------------+5 rows in set (0.00 sec)

(4). 数据库模型基本操作

现在进入交互式的Python shell,并使用 Django 提供的免费 api

python manage.py shell

引入需要的包:

from bookApp.models import Hero, Book

查询所有图书信息:

Book.objects.all()

新建图书信息:

from datetime import datetimebook = Book(title="射雕英雄传", pub_date=datetime(year=1990,month=1,day=10))book.save()

查找图书信息:

book = Book.objects.get(pk=1)book.idbook.titlebook.pub_date

修改图书信息:

book.title = "天龙八部"book.save()

删除图书信息:

book.delete()

添加关联对象

# 书籍的创建book = Book(title="倚天屠龙记", pub_date=datetime(year=1990,month=1,day=10))book.save()# 人物的创建info1 = "峨眉第四代掌门人,先为峨眉派掌门灭绝师太的徒儿,颇获灭绝师太欢心并对她>青睐有加,将峨眉派镇派之宝“蛾眉九阳功”传给了她,张无忌的追求者之一。"info2 = "原名敏敏特穆尔,汝阳王(朝廷大将军察罕特穆尔)的女儿,封号“绍敏郡主”,>赵敏是她的汉名,是从她的封号“绍敏郡主”而来。"hero1 = Hero(name="周芷若", gender=False, info=info1)hero2 = Hero(name="赵敏", gender=False, info=info2)hero1.Book=bookhero2.Book=bookhero1.save()hero2.save()

获得关联集合:返回当前book对象的所有hero

book.hero_set.all()

有一个 Hero 存在,必须要有一个 Book 对象,提供了创建关联的数据:

book.hero_set.create(name="张无忌",gender=True,content="武当派第二代“张五侠”张翠山与天鹰教紫微堂堂主殷素素的儿子")

第四步: 启用后台 Admin 站点管理、

站点分为“内容发布(后台管理)”和“公共访问(前台管理)”两部分
“内容发布”的部分负责添加、修改、删除内容,开发这些重复的功能是一件单调乏味、缺乏创造力
的工作。
因此, Django 会根据定义的模型类完全自动地生成管理模块
Django 框架中有一个非常强大的应用功能: 自动管理界面。 常被Web平台管理者使用,去管理整个
Web平台。
默认情况下,在 settings.py 配置文件中 INSTALLED_APPS 包含以下应用程序,为了后续的开发,默
认这些应用程序都是包含在里面的。

python中如何使用Django框架

 (1). 数据库迁移

使用这些 Django 自带的应用程序,需要我们在数据库中创建一些数据表对应,然后才能使用它们。

python manage.py makemigrationspython manage.py migrate

(2). 创建管理员用户

# 按提示输入用户名、邮箱、密码python manage.py createsuperuser

启动服务器,通过 “127.0.0.1:8000/admin” 访问,输入上面创建的用户名、密码完成登录
进入管理站点,默认可以对 groups、users 进行管理

python中如何使用Django框架

 (3). 管理界面本地化

编辑 settings.py 文件,设置编码、时区

LANGUAGE_CODE = 'zh-Hans'TIME_ZONE = 'Asia/Shanghai'

(4). 自定义模型加入后台管理

打开 bookApp/admin.py 文件,注册模型

from django.contrib import adminfrom models import Bookadmin.site.reGISter(Book)

刷新管理页面,可以对 Book 的数据进行增删改查操作 ;
问题一: python2 版本中, 如果在 str 方法中返回中文,在修改和添加时会报 ascii 的错误
在 str() 方法中,将字符串末尾添加 “.encode('utf-8')” 进行字符串编码
问题二: 后台管理时, Book管理显示的是英文, 如何变成中文?

python中如何使用Django框架

# bookApp/models.pyclass Book(models.Model):# ........此处省略# 自定义对应的表名,默认表名:bookApp_bookclass Meta:db_table = "books"# 单数时显示的名称verbose_name = '图书信息'# 复数时显示的名称verbose_name_plural = '图书信息'

python中如何使用Django框架

(5). 自定义管理页面

Django 提供了 admin.ModelAdmin 类
通过定义 ModelAdmin 的子类,来定义模型在 Admin 界面的显示方式

# bookApp/admin.pyfrom django.contrib import adminfrom .models import Book, Hero# 书籍自定义管理页面class BookAdmin(admin.ModelAdmin):list_display = ['pk', 'title', 'pub_date']list_filter = ['title']search_fields = ['title']list_per_page = 10# fields = ['pub_date', 'title']fieldsets = [('基础信息', {'fields': ['title']}),('详细信息', {'fields': ['pub_date']}), ]# 人物自定义管理页面class HeroAdmin(admin.ModelAdmin):list_display = ['id', 'name', 'gender', 'content']list_filter = ['name']search_fields = ['name']list_per_page = 10# 关联注册admin.site.register(Book, BookAdmin)admin.site.register(Hero, HeroAdmin)

 列表页属性性

ist_display:显示字段,可以点击列头进行排序list_display = ['pk', 'title', 'pub_date']list_filter:过滤字段,过滤框会出现在右侧list_filter = ['title']search_fields:搜索字段,搜索框会出现在上侧search_fields = ['title']list_per_page:分页,分页框会出现在下侧list_per_page = 10

python中如何使用Django框架

 添加、修改页属性

fields:属性的先后顺序fields = ['pub_date', 'title']fieldsets :属性分组, 注意: fields和fieldsets 只能设置一个.fieldsets = [('基础信息', {'fields': ['title']}),('详细信息', {'fields': ['pub_date']}), ]

python中如何使用Django框架

 关联对象

对于 Hero 模型类,有两种注册方式
方式一:与 Book 模型类相同
方式二:关联注册
admin.StackedInline : 内嵌关联注册类
admin.TabularInline : 表格 关联注册类

# bookApp/admin.py# class HeroInline(admin.TabularInline):class HeroInline(admin.StackedInline):model = Heroextra = 2class BookAdmin(admin.ModelAdmin):list_display = ['pk', 'title', 'pub_date']# .......此处省略部分重复代码inlines = [HeroInline]

显示效果如下:

python中如何使用Django框架

 布尔值的显示

发布性别的显示不是一个直观的结果,可以使用方法进行封装# bookApp/models.pyclass Hero(models.Model):#.......此处省略部分重复代码def sex(self):if self.gender:return"男"else:return"女"在 admin 注册中使用 sex 代替 gender# bookApp/admin.pyclass HeroAdmin(admin.ModelAdmin):list_display = ['id', 'name', 'sex', 'content']

 显示效果如下:

python中如何使用Django框架

关于python中如何使用Django框架就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: python中如何使用Django框架

本文链接: https://www.lsjlt.com/news/298435.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python中如何使用Django框架
    这篇文章将为大家详细讲解有关python中如何使用Django框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。第一步:项目的创建与运行第一次使用 Django ,那么你必须要照顾一些初始设...
    99+
    2023-06-20
  • python-django框架中使用Fa
    一、安装FastDFS 1-1:执行docker命令安装 # 安装tracker docker run -dti --network=host --name tracker -v /var/fdfs/tracker:/var/fdfs ...
    99+
    2023-01-31
    框架 python django
  • python-django框架中使用七牛
      1:注册七牛云账号        https://www.qiniu.com/   js文件 链接:https://pan.baidu.com/s/1BW1svHqEsXrrTNtRobKkpg  提取码:ixta   2:进行实名认...
    99+
    2023-01-31
    框架 python django
  • 如何在Django框架中使用HTTP协议?
    Django是一个流行的Python web框架,它支持多种协议,包括HTTP。在这篇文章中,我们将学习如何在Django框架中使用HTTP协议。 HTTP是一种客户端-服务器协议,用于从web服务器传输超文本到web浏览器。Django框...
    99+
    2023-06-27
    http apache django
  • Python中怎么使用Django框架开发
    今天就跟大家聊聊有关Python中怎么使用Django框架开发,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。建立Python Django开发框架,实现表单的有效性检验。可以方便的从...
    99+
    2023-06-17
  • Python Django框架中表单怎么使用
    本篇内容介绍了“Python Django框架中表单怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Django保证表单的正...
    99+
    2023-07-02
  • 如何在 Django 中使用 ASP 框架对象?
    Django 是一个非常流行的 Python Web 框架,它提供了许多功能和工具来帮助开发人员快速构建 Web 应用程序。但是,有时候我们需要在 Django 中使用 ASP 框架对象,以便更好地管理我们的 Web 应用程序。在本篇文章中...
    99+
    2023-11-11
    框架 对象 django
  • Django框架中如何使用Python的Numpy库操作文件?
    随着数据科学和人工智能的兴起,Python的Numpy库已经成为数据分析和科学计算的重要工具。Numpy库提供了大量的数学和科学函数,可以轻松处理数组和矩阵等数据结构。在Django框架中,我们可以通过Numpy库来操作文件,例如读取和保...
    99+
    2023-06-01
    numpy django 文件
  • 如何使用Python3+mysql8.0搭建Django框架
    小编给大家分享一下如何使用Python3+mysql8.0搭建Django框架,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、安装python基础环境:cent...
    99+
    2023-06-15
  • Python中sqlalchemy框架如何使用
    今天就跟大家聊聊有关Python中sqlalchemy框架如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。安装安装#进入虚拟环境#执行./python3 -m&nbs...
    99+
    2023-06-20
  • ASP和Django框架如何同步使用?
    随着互联网的发展,Web应用程序已成为现代软件开发的主要方式之一。当涉及到Web开发时,ASP和Django是两个最常用的框架之一。但是,ASP和Django之间有什么关系?ASP和Django如何同步使用?本文将深入探讨这个问题。 AS...
    99+
    2023-09-07
    同步 django 框架
  • 如何在 ASP 框架中使用 Django 数据类型?
    ASP 框架是一种流行的 Web 应用程序框架,而 Django 是一个流行的 Python Web 框架。将两者结合使用可以提高开发效率和代码质量。本文将介绍如何在 ASP 框架中使用 Django 数据类型。 什么是 Django 数据...
    99+
    2023-06-20
    框架 数据类型 django
  • django 使用框架下auth.mod
    需要改动三个地方: 1.models.py   创建模型User,并继承原模型类AbstraUser(在此处我增加了一个新的字段手机号) from django.db import models # Create your model...
    99+
    2023-01-31
    框架 django mod
  • Python中什么是Django框架
    这篇文章主要介绍“Python中什么是Django框架”,在日常操作中,相信很多人在Python中什么是Django框架问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中什么是Django框架”的疑...
    99+
    2023-06-01
  • bottle框架如何在python 中使用
    这篇文章给大家介绍bottle框架如何在python 中使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;4.t...
    99+
    2023-06-14
  • 如何在python中使用bottle框架
    这期内容当中小编将会给大家带来有关如何在python中使用bottle框架,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型...
    99+
    2023-06-14
  • 如何在 Django 中使用 ASP 框架的数据类型?
    在 Django 中使用 ASP 框架的数据类型是一个非常重要的话题,因为这些数据类型对于开发人员来说是非常有用的。在本文中,我们将讨论如何在 Django 中使用 ASP 框架的数据类型,以及如何在代码中演示这些数据类型。 ASP 框架是...
    99+
    2023-06-20
    框架 数据类型 django
  • Django框架中模型怎么使用
    这篇文章主要介绍“Django框架中模型怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Django框架中模型怎么使用”文章能帮助大家解决问题。Django 对各种数据库提供了很好的支持,包括...
    99+
    2023-07-02
  • django框架使用mysql步骤
    在创建好django项目的基础上来讲解使用orm框架 注意:首先在mysql中手动或者通过命令创建一个数据库,我先创建一个名为orm的数据库。 1:在项目文件夹中的settings.py文件中配置mysql数据库链接字符串及时区配置 #...
    99+
    2023-01-30
    框架 步骤 django
  • Java容器中如何使用Django框架实现HTTP协议?
    Django是一个基于Python语言的Web框架,它可以帮助开发者快速构建出具有良好可维护性的Web应用程序。而Java容器是指能够运行Java应用程序的环境,如Tomcat、Jetty等。在本文中,我们将探讨如何在Java容器中使用D...
    99+
    2023-06-15
    http django 容器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作