python

xiaoxiao2021-02-28  14

Render的第三个参数

返回给前端的数据 是从数据库中获取的

Models 模型

对应数据库的一张数据表 以类的形式表现

ORM 对象关系映射:所有对数据库的操作实际上是对类以及对类的对象的操作 隐藏了数据访问的细节,不需要写任何sql语句 实现了对象与数据库之间的映射

步骤: 1. 在应用根目录的models.py 引入models模块 1. 创建类 继承models.Model 该类就是一张数据表 1. 在类中创建字段

字段创建: 字段即类里面的属性 attr = models.CharField(max_length=64)

字段类型看文档:https://docs.djangoproject.com/en/1.11/ref/models/fields/

将模型映射成数据表: 1. python manage.py makemigrations app名 1. python manage.py migrate

migrate, which is responsible for applying and unapplying migrations.makemigrations, which is responsible for creating new migrations based on the changes you have made to your models.

makemigrations命令介绍

makemigrations与migrate区别

makemigrations作用:相当于在该app下建立 migrations目录,并记录下所有的关于modes.py的改动,比如0001_initial.py, 但是这个改动还没有作用到数据库文件

# -*- coding: utf-8 -*- # Generated by Django 1.11 on 2018-02-10 02:25 from __future__ import unicode_literals from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('blog', '0001_initial'), ] operations = [ migrations.AddField( model_name='article', name='publish_time', field=models.DateTimeField(auto_now=True), ), ]

migrations命令作用: 将该改动作用到数据库文件,比如产生table,修改字段的类型等。

Django会在app/migrations/目录下生成移植文件 执行python manage.py sqlmigrate 应用名 文件id 可以查看sql语句,例如:

manage.py@test2 > sqlmigrate blog 0001 bash -cl "/Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6 /Applications/PyCharm.app/Contents/helpers/pycharm/django_manage.py sqlmigrate blog 0001 /Users/shixinshan/Development/DjangoProjects/test2" BEGIN; -- -- Create model Article -- CREATE TABLE "blog_article" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "title" varchar(32) NOT NULL, "content" text NULL); COMMIT; Following files were affected Process finished with exit code 0

生成的数据库在哪里? 使用了默认的sqlite3

查看并编辑db.sqlite3 使用第三方 轻量级 完全免费 Windows:sqlite expert personal Mac:SQLiteStudio (推荐)

页面数据获取: 在views.py中import models Article = models.Article.objects.get(pk=1) select 主键为1 render(request,page, {‘article’: article}) 也支持对象的传递

转载请注明原文地址: https://www.6miu.com/read-2250286.html

最新回复(0)