Django搭建和数据迁移

Django框架简单使用

路由创建,数据库配置,和数据迁移

1.环境搭建及安装

安装python

到官网 https://www.python.org/downloads/ 下载合适自己的python版本。推荐3.9。

安装django模块

 py -m pip install Django

新建py文件并保存,查看当前python django版本

import django
print(django.get_version())

或者执行命令

// windows: 
py -m django --version

// apple/linux: 
python -m django --version

2. 创建项目

执行创建命令

 django-admin startproject testsite

可以看到自动为我们生成了目录

testsite/
    manage.py
    testsite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

解释每个文件的含义:
manage.py: 管理 Django 项目的命令行工具。
mysite/ 目录包含你的项目,它是一个纯 Python 包。
mysite/__init__.py:空文件。
mysite/settings.py:项目的配置文件。
mysite/urls.py:路由文件。
mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的Web服务器上的入口。
mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。

3.启动项目

// 如果你是苹果端或者linux端,统一python程序命令为 python,我这里用的是windows,python程序环境命令为py。
py manage.py runserver

启动成功之后会看到我们默认监听的8000端口,这是一个轻量级的web服务器,最好不要用于生产环境。
我们访问本地 http://127.0.0.1:8000/ 即可

如果你想更换端口,后面加上你需要监听的端口就行。

py manage.py runserver 8080

4.创建应用或者包

Django 中,每一个应用都是一个 独立Python 包,并且遵循着相同的约定。Django 自带一个工具,可以帮你生成应用的基础目录结构,这样你就能专心写代码,而不是创建目录了。

py manage.py startapp members

然后会在我们的根目录生成下面目录

members/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

5.编写视图

编辑members/views.py文件

from django.http import HttpResponse


def index(request):
    return HttpResponse("这是用户模块")

这是视图。为了想看见效果,需要将一个URL映射到它,这就是我们需要 URLconf 的原因了。

为了创建 URLconf,在members目录里新建一个 urls.py 文件。
你的应用目录:

members/
   __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

编辑urls文件

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

下一步在根 URLconf 文件中指定我们创建的 members.urls 模块。在 testsite/urls.py 文件的 urlpatterns 列表里插入一个 include()

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('members/', include('members.urls')),
    path('admin/', admin.site.urls),
]

函数 include() 允许引用其它 URLconfs。当Django遇到include()时,会截断与此项匹配的URL的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。

这个时候视图已经路由添加完成执行:

py manage.py runserver

用你的浏览器访问 http://localhost:8000/members/,你就能看见 "这是用户模块"这句话了。

6.数据库配置

打开 testsite/settings.py
项目默认是sqlite,如果要配置其他数据库,按照下面的例子就可以

'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': '127.0.0.1',
        'PORT': '3306',
    }

ENGINE可选的数据库有
'django.db.backends.sqlite3'
'django.db.backends.postgresql'
'django.db.backends.mysql'
'django.db.backends.oracle'
假如我选择的是mysql,则需要安装mysqlpython的数据库驱动,如果是其他就安装相应的数据库驱动,sqlite默认的不需要。

pip install mysqlclient

执行迁移

py manage.py migrate

执行migrate命令会先检查testsite/settings.py里面的INSTALLED_APPS设置,为里面的每个应用创建需要的数据表,至于具体会创建什么,这取决于testsite/settings.py设置文件和每个应用的数据库迁移文件。这个命令所执行的每个迁移操作都会在终端中显示出来。

然后这个时候你打开数据库,便会发现django生成了相关应用的默认数据库。

6.创建模型

打开我们创建好的应用members模型文件 members/models.py

from django.db import models


class UserQuestion(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class UserAnwser(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    content_text = models.CharField(max_length=200)
    num = models.IntegerField(default=0)

每个字段都是Field类的实例,字符字段被表示为CharField ,日期时间字段被表示为 DateTimeFieldmax_length是验证数据长度字段,ForeignKey是为了建立UserAnwserUserQuestion关联关系。

7.激活模型

为了把我们的应用members安装到我们的项目当中

首先要在配置类INSTALLED_APPS中添加设置。因为MembersConfig 类写在文件 Members/apps.py中,所以路径是 'members.apps.MembersConfig'

testsite/settings.pyINSTALLED_APPS子项添加路径后

INSTALLED_APPS = [
    'members.apps.MembersConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

然后执行命令

 py manage.py makemigrations members

makemigrations会检测你对模型文件的修改,并且把修改的部分储存为一次迁移。在你的项目应用目录下会生成相应的迁移文件 members/migrations/0001_initial.py

执行迁移命令

py manage.py sqlmigrate members 0001

sqlmigrate并没有真正在你的数据库中的执行迁移,只是把命令输出到屏幕上,让我们看到Django认为需要执行哪些SQL语句。

再次运行 migrate 命令,就会在数据库里创建新定义的模型的数据表。

py manage.py migrate

你这个时候查看数据可,就可以看到为我们模型创建了数据表,运行migrate迁移会执行所有还没有执行过的迁移(django_migrations会记录你以前执行过哪些迁移)并应用在数据库上

迁移能让你在开发过程中持续的改变数据库结构而不需要重新删除和创建表,专注于使数据库平滑升级而不会丢失数据。

8.总结

Django采用MTV设计,(模型,模板,视图)

他的orm映射和自带的权限认证系统非常适合我们用来做web开发

并且他用到的框架核心包较少,很轻量,假如和现在流行的python相关的ai,物联网结合起来用,也不会担心跨语言,与项目融合更好,比如maxkb

后面我会继续写一部分关于Django的使用方法,主要是项目中常用的

比如它的api,验证,视图,模板系统。

– 欢迎点赞、关注、收藏【我码玄黄】,gonghao同名

相关推荐

  1. Django数据迁移

    2024-05-26 02:14:23       32 阅读
  2. django中实现数据迁移

    2024-05-26 02:14:23       43 阅读
  3. Django迁移数据到指定数据库

    2024-05-26 02:14:23       46 阅读
  4. Django——django与环境

    2024-05-26 02:14:23       53 阅读
  5. 基于Python、DjangoOracle的框架怎么

    2024-05-26 02:14:23       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-26 02:14:23       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-26 02:14:23       106 阅读
  3. 在Django里面运行非项目文件

    2024-05-26 02:14:23       87 阅读
  4. Python语言-面向对象

    2024-05-26 02:14:23       96 阅读

热门阅读

  1. 【Redis精通之路】数据类型(2)

    2024-05-26 02:14:23       30 阅读
  2. 删除有序数组中的重复项-力扣

    2024-05-26 02:14:23       33 阅读
  3. springboot项目跨域设置总结

    2024-05-26 02:14:23       28 阅读
  4. Flink 任务调度策略:Eager 模式详解

    2024-05-26 02:14:23       31 阅读
  5. Flink 任务调度策略:Lazy from Sources 深入解析

    2024-05-26 02:14:23       29 阅读
  6. 海外投放面试手册

    2024-05-26 02:14:23       39 阅读
  7. 游戏引擎支持脚本编程的好处

    2024-05-26 02:14:23       34 阅读
  8. 供应链金融模式学习资料

    2024-05-26 02:14:23       32 阅读