Django学习笔记(Mosh)(更新中)

文章介绍了如何使用PyCharm创建PythonDjango项目,包括安装Django、启动服务器、创建应用、定义视图和URL路由,以及模型操作和数据库迁移。重点讨论了views.py和urls.py在前后端连接中的作用,models.py中如何定义数据库模型,并提到了默认的SQLite数据库和数据迁移过程。
摘要由CSDN通过智能技术生成

PyCharm端操作

新建python项目PyShop

项目中的Terminal运行

pip install Django

启动测试服务器

python3 manage.py runserver

启动后可在http://127.0.0.1:8000 或http://localhost:8000 中查看

创建Django项目文件

#新建项目PyShop的小写同名文件
django-admin startproject pyshop .

新建应用程序

#生成应用程序products
python3 manage.py startapp products

前端和后端连接的桥梁:views.py和urls.py需要结合使用

  • views用于处理来自浏览器的请求并返回响应。
# 导入HttpResponse和render函数
#HttpResponse类表示HTTP响应,可以用于返回文本、HTML、JSON等内容。
from django.http import HttpResponse
from django.shortcuts import render

# 定义视图函数
def index(request):
    # 返回一个HttpResponse对象,内容为'Hello World'
    return HttpResponse('Hello World')

def about(request):
    return HttpResponse("关于")
  • URL路由映射(可以全写在总urls,但是不建议。分开利于管理和解耦)
  1. 在应用程序里新建urls.py做内部的URL路由映射
# 导入path函数和当前应用程序的views模块
from django.urls import path
from . import views

# 定义应用程序的URL路由
urlpatterns = [
    # 空路径映射到index视图函数(views.py里面的index函数),使用名称为'index'的路由
	#127.0.0.1:8000/products映射views中的index
    path('', views.index, name='index'),
    # 127.0.0.1:8000/products/about/映射到about视图函数,使用名称为'about'的路由
    path('about/', views.about, name='about'),
]
  1. 在应用程序中添加路由后别忘了将应用程序和Django项目文件夹下的总的urls路由连接,不然应用程序中的url无法被加载到
# 导入path函数和include函数
from django.urls import path, include

# 定义应用程序的URL路由
urlpatterns = [
    # 将admin/路径映射到Django默认的管理站点
    path('admin/', admin.site.urls),
    # 将products/路径映射到products应用程序的urls.py文件
    # include函数用于包含其他应用程序的URL路由
    path('products/', include('products.urls'))
]

views中做好处理响应和urls映射好之后,便可在http://127.0.0.1:8000/products 查看成果


模型models.py(操作数据库)

(这里用到的框架有点像java的Hibernate。)

  • 利用django.db的models模块创建模型
# 引入 Django 的 models 模块
from django.db import models

# 定义 Product 模型类,继承自 models.Model
class Product(models.Model):
    # 定义 name 字段,使用 CharField 类型,长度为 255,以此类推
    name = models.CharField(max_length=255)
    price = models.FloatField()
    stock = models.IntegerField()
    image_url = models.CharField(max_length=2083)

通过定义模型类,Django 可以自动创建相应的数据库表以及表的列,并提供了一些内置的方法,如 create、save、update等方法,使得开发者可以很方便地进行数据库操作。

  • db.sqlite3:创建Django项目时生成的轻量级SQLite 数据库文件,数据存储在本地磁盘(可选其他数据库)

**db.sqlite3**文件是 Django 项目中默认的数据库文件名,它位于项目的根目录中,并存储着项目中所有模型类对应的数据表以及表中的数据。在项目启动时,Django 会根据模型类定义自动创建或更新相应的数据表,并将数据存储到该文件中。

💡 如果需要更换数据库,需修改项目的 **settings.py文件中的DATABASES**配置,来指定新的数据库引擎、数据库名称、用户名和密码等信息。同时,还需要在新的数据库中创建与项目中模型类对应的表,以便 Django 能够正确地读取和写入数据。

  • 数据迁移(每当新建或修改模型后,需要再次操作这个步骤来刷新数据库的表结构)
  1. 生成迁移脚本
python3 manage.py makemigrations
#运行后生成products/migrations/0001_initial.py,可自行查看相应数据库列名

当运行 **makemigrations**命令后,Django 会检测模型类的变化,并根据变化生成一个迁移脚本。这个迁移脚本包含了对数据库进行操作的指令,比如创建新表、删除表、添加字段、删除字段等。

💡 报No changes detected要么就是没有需要更改的,要么就是没有在项目的settings.py文件中注册你的app名。可以在INSTALLED_APPS中添加对应的app名,然后再运行该makemigrations命令。这样应该可以生成迁移文件。如这里需要在settings.py添加products.apps.ProductsConfig(products中的apps.py中的ProductsConfig)

  1. 将迁移脚本应用到数据库
python3 manage.py migrate

Django migrate默认创建的那些表包括:

  • auth_group:存储用户组的信息,包括组名和权限等级。
  • auth_user:存储用户的信息,包括用户名、密码、电子邮件地址等。
  • auth_user_groups:用户和用户组之间的关联表,用于将用户添加到用户组中。
  • auth_permission:存储权限信息,包括应用名称、模型名称、权限名称等。
  • django_admin_log:用于记录管理员在管理站点中的操作日志。
  • django_content_type:存储模型的信息,包括应用名称、模型名称等。
  • django_migrations:用于记录数据库迁移的信息。
  • django_session:存储会话信息,用于跟踪用户的登录状态等。

这些表是 Django 内置的,用于支持一些常见的功能,例如认证、授权、管理站点等。其中 auth_userauth_groupauth_permission 表是认证和授权的关键组件,而 django_admin_log 表则用于记录管理员的操作,方便追溯和审计。django_migrations 表记录了数据库迁移的历史记录,django_session 表用于存储会话信息,而 django_content_type 表则提供了一个动态获取模型信息的接口,方便实现一些通用的功能,例如菜单栏、搜索、导航等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值