一.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
manage.py :一个命令行工具,可以使你用多种方式对Django 项目进行交互
内层的目录:项目的真正的Python包
__init__.py :一个空文件,它告诉Python这个目录应该被看做一个Python包
settings.py :项目的配置
urls.py :项目的URL声明
wsgi.py :项目与WSGI 兼容的Web服务器入口
(2)应用的创建和使用
1)Django 自带一个实用程序,可以自动生成应用程序的基本目录结构,因此可以专注于编写代码而不是创建目录。在一个项目中可以创建一到多个应用,每个应用进行一种业务处理,创建应用的命令:
```python
python3 manage.py startapp bookApp
2)编写第一个视图函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200730105447989.png)
3)路由规则要在bookApp 目录中创建一个URLconf ,创建一个名为urls.py
```python
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 规则:
效果
python3 manage.py runserver
(3)项目的数据库模型
1)Django 支持的数据库包括: sqlite 、mysql 等主流数据库 Django 默认使用SQLite 数据库
sqlite的操作使用 :在命令行做一个数据库的迁移
[root@linux Django2]# python3 manage.py migrate
python3 manage.py createsuperuser 创建用户
然后通过 python3 manage.py runserver 启动服务器
2)连接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': '323315',
'HOST': 'localhost',
'PORT': '3306',
}
}
3) python3 manage.py migrate 数据库迁移 还会有有提示 要安装mysqlclient
4). python3 manage.py createsuperuser
5). python3 manage.py runserve
(3 )创建数据库模型
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 '' % (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 "" % (self.name)
# 自定义对应的表名,默认表名:bookApp_book
class Meta:
db_table = "heros"
(4). 生成数据库表
# BookManage/settings.py
# Application definition
INSTALLED_APPS = [
# .......此处省略
'django.contrib.staticfiles',
# 新添加的app
'bookApp',
]
生成迁移文件:根据模型类生成sql 语句 python manage.py makemigrations
执行迁移:执行sql 语句生成数据表 python manage.py migrate
数据库中查看数据库表是否创建成功? show database
(5)数据库模型基本操作
现在进入交互式的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()