一、Django框架介绍
1.什么是框架
软件框架就是为实现或完成某种软件开发时,提供了一些基础的软件产品;框架的功能类似于基础设施,提供并实现最为基础的软件架构和体系;通常情况下我们依据框架来实现更为复杂的业务程序开发;二个字,框架就是程序的骨架。
2.Python 中常见的框架有哪些?
大包大揽Django 被官方称之为完美主义者的Web框架。力求精简 web.py 和Tornado。新生代微框架 Flask 和Bottle
3.Django 框架介绍
Django 是一个高级的Python Web框架,它鼓励快速开发和清洁,务实的设计。由经验丰富的开发人员构建,它负责解决Web开发的许多困难,因此您可以专注于编写应用程序,而无需重新创建轮子。免费的和开源的。被官方称之为完美主义者的Web框架。
4.Django 框架的特点
速度快,安全,可拓展性能好。
5.Django框架的安装及建立过程
在豆瓣上下载Django框架,在pycharm的终端输入下面代码
pip3 install django==3.0 -i https://pypi.douban.com/simple
二、Django快速人门:后台管理
通过简单示例,使用Django 完成基本流程的开发,学习Django 的主要的知识点,, 本次入门以图书管理系统为示例 , 实现图书管理的基本功能。
1.项目的创建与运行
第一次使用Django ,那么你必须要照顾一些初始设置。也就是说,您需要自动生成一些建立Django项目的代码。在pycharm的终端输入下面代码
django-admin startproject BookManage
<1>创建Django项目
<2>创建项目后生成了如下的文件
manage.py :一个命令行工具,可以使你用多种方式对Django 项目进行交互 内层的目录 :项目的真正的Python包 __init__.py :一个空文件,它告诉Python这个目录应该被看做一个Python包 settings.py :项目的配置 urls.py :项目的URL声明 wsgi.py :项目与WSGI 兼容的Web服务器入口
2.应用的创建和使用
<1>Django 自带一个实用程序,可以自动生成应用程序的基本目录结构.
因此您可以专注于编写代码而不是创建目录。在一个项目中可以创建一到多个应用,每个应用进行一种业务处理,创建应用的命令:
python3 manage.py startapp bookApp
<2>编写第一个视图函数
<3>路由规则
要在bookApp 目录中创建一个URLconf ,创建一个名为urls.py
from django.contrib import admin from django.urls import path from . import views urlpatterns = [ path('',views.index, name='index'), ]
根据配置文件BookManage/settings 可知路由查找的主文件是BookManage/urls.py , 因此在该文件添加一条url 规则:
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('book/', include('bookApp.urls')) ]
<4>效果
在终端启动服务器 python3 manage.py runserver
3.项目的数据库模型
Django 支持的数据库包括:
sqlite 、mysql 等主流数据库 Django 默认使用**SQLite** 数据库
<1>数据库迁移
sqlite的操作使用 :在命令行做一个数据库的迁移
python3 manage.py migrate
然后将sqlite3 添加到Django中
单击db.sqlite3 可以查看数据库信息 默认的Django已经将数据库的一些设置好了
<2>通过网页的方式显示数据库 在命令行输入 python3 manage.py createsuperuser 创建用户
<3>然后通过 python3 manage.py runserver 启动服务器
<4>连接MySQL 数据库配置
在BookManage/settings.py 文件中,通过DATABASES项进行数据库设置:注释之前的sqlite数据库;
# 注释之前的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': '147147', 'HOST': 'localhost', 'PORT': '3306', } }
修改成中文站点
4.创建数据库模型
from django.db import models # Create your models here. # 一个Book类对应一个数据库表 # 一个类属性对应一个数据库表的列属性 class Book(models.Model): # # 默认情况下,会自动添加id这一列作为主键。 # title是字符串类型的, 并且最大的长度为20; title = models.CharField(max_length=20) pub_date = models.DateField() def __repr__(self): return '<Book: %s>' % (self.title) # 自定义对应的表名,默认表名:bookApp_book class Meta: db_table = "books" class Hero(models.Model): # 默认情况下,会自动添加id这一列作为主键。 name = models.CharField(max_length=20) gender = models.BooleanField(default=True) content = models.CharField(max_length=200) # 一对多关系, 外键写在多的一端(Book:Hero=1:n) # models.CASCADE叫级联删除,当书籍被删除后,关联的任务也会被删除 book = models.ForeignKey('Book', on_delete=models.CASCADE) def __repr__(self): return "<Hero %s>" % (self.name) # 自定义对应的表名,默认表名:bookApp_book class Meta: db_table = "heros"
5.生成数据库表
# BookManage/settings.py # Application definition INSTALLED_APPS = [ # .......此处省略 'django.contrib.staticfiles', # 新添加的app 'bookApp', ] 生成迁移文件:根据模型类生成sql语句 python3 manage.py makemigrations 执行迁移:执行sql语句生成数据表 python3 manage.py migrate 数据库中查看数据库表是否创建成功? show database
6.数据库模型基本操作
现在进入交互式的Python shell,并使用Django 提供的免费API
python manage.py shell 引入需要的包: from bookApp.models import Hero, Book 查询所有图书信息: Book.objects.all() 新建图书信息: from datetime import datetime book = Book(title="射雕英雄传", pub_date=datetime(year=1990,month=1,day=10)) book.save() 查找图书信息: book = Book.objects.get(pk=1) book.id book.title book.pub_date 修改图书信息: book.title = "天龙八部" book.save() 删除图书信息: book.delete()