Django

1.Django简介

1.1 Django简介

Django是一个高级的PythonWeb框架它鼓励快速开发和干净、实用的设计。由经验丰富的开发者构建,它解决了Web开发中的许多麻烦,因此你可以专注于编写应用而无需重新发明轮子。
Django遵循MTV(模型-模板-视图)设计模式

模型(Model) :定义数据结构,通常与数据库交互。
模板(Template) :定义用户界面的外观和感觉。
视图(View) :处理业务逻辑和数据呈现。

2.Django基础

2.1 Django安装

pip install Django

安装完成后,通过以下命令确定Django安装版本

django-admin --version

2.2 Django项目结构

经典的Django项目结构如下

myproject/
    manage.py
    myproject/
        __init__.py
        admin.py
        apps/
            __init__.py
            models.py
        forms.py
        migrations/
            __init__.py
            apps.py
            models.py
        static/
         templates/
         urls.py
         views.py
    myapp/
        __init__.py
        admin.py
        apps.py
        models.py
        views.py
  • manage.py:Django项目的入口脚本,用于运行开发服务器、管理数据库迁移等。
  • myproject/:项目的包名,通常与项目名相同。
  • urls.py:项目的URL配置。
  • views.py:处理请求的视图函数。
  • apps/:Django应用的目录,可以包含多个应用。
  • models.py:定义模型和数据库表。
  • static/:存放静态文件,如CSS、JavaScript和图片。
  • templates/:存放HTML模板。

2.3 视图与url路由

URL路由是将Web请求映射到Django视图的规则。在Django中,URL路由在urls.py文件中定义。每个URL模式都指定了一个视图函数。以下是一个简单的URL路由配置示例:

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello, name='hello'),
    # ...其他URL
]

2.4 数据模型与ORM

Django的模型是Python类,它们映射到数据库表。Django的ORM(对象关系映射)系统允许你用Python类和属性来表示数据库表和关系。

以下是一个简单的数据模型示例:

from django.db import models


class User(models.Model):
    username = models.CharField(max_length=100)
    email = models.EmailField()


class Post(models.Model):
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    content = models.TextField()

在上面的代码中,UserPost类分别代表了用户和博客文章的数据模型。User类有一个username字段和一个email字段,而Post
类有一个author字段(外键),一个title字段和一个content字段。

2.5 数据迁移

2.5.1 Django迁移到数据库

当你创建一个Django应用并定义模型后,Django会自动为你生成数据库迁移脚本,你可以使用manage.py来执行这些迁移,以在数据库中创建相应的表。

# 生成迁移文件
python manage.py makemigrations
# 将迁移文件同步到数据库
python manage.py migrate

2.5.2 数据库到Django

但是当你数据库中已经有建立好的数据表时,需要使用以下命令来迁移数据
这个会将你数据库中的已有表结构,保存到models.py中

python manage.py inspectdb 学生表1> models.py
posted @ 2025-06-12 16:53  原野0620  阅读(194)  评论(0)    收藏  举报