linux中Python下Django框架介绍及Django框架的后台管理

本文介绍了Python的Django框架,包括其定义、常见框架对比、特点及安装过程。深入讲解了如何创建和运行Django项目,创建应用、编写视图函数和路由规则。还详细阐述了数据库模型的创建、数据库迁移、SQLite与MySQL的使用,以及如何通过Django后台管理进行数据库操作。
摘要由CSDN通过智能技术生成

一、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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Horizon_carry

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值