python Django框架初体验 (1)

导读:本篇文章讲解 python Django框架初体验 (1),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

一.Django框架介绍

Django,发音为dʒæŋɡəʊ,诞生于2003年秋天,2005年发布正式版本,由Simon和Andrian开发。

Django框架遵循MVC思想,但是有自己的说法,即MVT。

以用户注册为例,一个典型的MVC过程如下:
在这里插入图片描述
其中,M即Model模型,用于与数据库进行交互;
V即View视图,用于产生HTML页面;
C即Controller控制器,用于接收请求并进行处理。

在Django中,MVT与MVC有一定的区别,意义为:
M即Model模型,用于与数据库进行交互;
V即View视图,用于接收请求并进行处理;
C变为T,即Template模板,处理HTML视图。

Django中文文档https://docs.djangoproject.com/zh-hans/2.2/

二.Django项目创建、运行

1创建Django项目

  • 命令行创建
    在命令行中执行命令django-admin startproject [项目名称],例如执行django-admin startproject mysite即可创建项目mysite。
  • pycharm创建
    示意如下:

在这里插入图片描述

2.运行Django项目

运行Django项目也有2种方式:

  • 命令行运行
    通过python manage.py runserver 8000(默认)即可运行项目,如果想要修改端口号,可以在运行的时候可以指定端口号,例如执行python manage.py runserver 9000就可以通过9000端口访问。
  • 通过PyCharm运行
    示意如下:

在这里插入图片描述

3.Django项目结构

项目主目录中:

  • manage.py:
    用于和项目交互,一般都是在命令行输入python manage.py [子命令]执行相关指令,可以执行python manage.py help查看帮助。
  • 项目同名子目录
    • settings.py:
      项目的设置文件,所有和项目相关的配置都在settings.py中。一般为了放置一些组件和资源,通常会在配置文件末尾写上STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'static'), )然后在创建一个static文件到主目录中。
    • urls.py:
      用来配置URL路由。一般建立视图函数不是在urls.py中,而是在app中实现。

此时需要创建app,通过命令python manage.py startapp app名称即可创建app,如执行python manage.py startapp app01即创建名为app01的app,创建目录的包含文件如下:

  • admin.py
    用于后台管理。
  • apps.py
    该app的相关配置,用于在创建项目之后,为了建立应用和项目之间的联系,还需要对应用进行注册,即修改settings.py中的INSTALLED_APPS配置项(一般默认自动创建).
  • tests.py
    写测试代码。
  • views.py
    视图文件,接收请求、处理数据,与视图和模板进行交互。

三.数据库的介绍、ORM配置

1.相关的数据库有什么?

  • pymysql
  • SQLAlchemy
  • ORM(Django框架和Flack框架独有)

使用原生sql执行

使用Django来操作MySQL时,底层还是通过Python来操作的,因此要想用Django来操作MySQL,pymysql和SQLAlchemy是在可以在python中使用原生的sql语句进行交互 (增删改查一般用于较为复杂ORM也实现不了的操作) 的。

ORM介绍、配置

O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思。在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。

django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。

使用django进行数据库开发的步骤如下:

  1. 配置数据库连接信息
  2. 在models.py中定义模型类
  3. 迁移
  4. 通过类和对象完成数据增删改查操作

在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

如果想使用mysql连接需要配置如下:
6. 使用MySQL数据库首先需要安装驱动程序

pip install pymysql
  1. 在Django的工程同名子目录的init.py文件中添加如下语句
import pymysql
# 目前mysqlclient目前只支持py3.4所以要指定版本
pymysql.version_info = (1, 4, 13, "final", 0)

pymysql.install_as_MySQLdb()

作用是让Django的ORM能以mysqldb的方式来调用PyMySQL

  1. 修改DATABASES配置信息
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',  # 数据库主机
        'PORT': 3306,  # 数据库端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': 'xxx',  # 数据库用户密码
        'NAME': 'xxx'  # 数据库名字
    }
}
  1. 在MySQL中创建数据库
create database if exists `xxx`;

四、Django初体验

1.Django创建视图函数

在Django中定义视图函数时,要注意两点:
(1)参数中必须要传request参数;
(2)返回值要包裹在HttpResponseBase或其子类中。

在urls.py中定义视图如下:

from django.contrib import admin
from django.urls import path
from app01 import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/',views.index),
]

在创建的app01文件夹下的views.py中定义视图如下:

from django.shortcuts import render,HttpResponse

# Create your views here.


def index(request):

    return HttpResponse('元旦快乐,祝2021,牛转乾坤!!')

访问http://127.0.0.1:8000/index/显示:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/66862.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!