django 学习使用

目录

1、创建虚拟环境 安装django

2、创建Django项目

 3.运行项目

 4、创建app,app表示一个功能模块

 5、注册app

6、配置访问该app的访问路径

 7、给创建的模块 新增urls.py 内容如下

8、编写model 

9、数据迁移 对数据库进行增删改查 都需要进行数据迁移的操作


学习的github:https://github.com/stacklens/django_blog_tutorial

1、创建虚拟环境 安装django

创建虚拟环境看ubtuntu安装python3的虚拟环境

安装django

pip install django==2.1

2、创建Django项目

django-admin startproject my_blog

创建成功后的目录结构 

 

 3.运行项目

python manage.py runserver

 4、创建app,app表示一个功能模块

python manage.py startapp article

  • 根目录my_blog下有两个文件:db.sqlite3是一个轻量级的数据库文件,用来存储项目产生的数据,比如博客文章;manage.py是项目执行命令的入口,比如runserver。

  • 目录article是刚创建出来的app,用来放置博客文章相关的代码:后台管理文件admin.py,数据模型文件models.py,视图文件views.py,存放数据迁移文件的目录migrations

  • 根目录下还有一个my_blog目录,其中的settings.py包含项目的配置参数,urls.py则是项目的根路由文件。

 5、注册app

6、配置访问该app的访问路径

 

path为Django的路由语法:

  • 参数article/分配了app的访问路径;
  • include将路径分发给下一步处理;
  • namespace可以保证反查到唯一的url,即使不同的app使用了相同的url(后面会用到)。

 7、给创建的模块 新增urls.py 内容如下

# 引入path
from django.urls import path

# 正在部署的应用的名称
app_name = 'article'

urlpatterns = [
    # 目前还没有urls
]

8、编写model 

Django 框架主要关注的是模型(Model)、模板(Template)和视图(Views),称为MTV模式。

 

层次职责
模型(Model),即数据存取层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
模板(Template),即业务逻辑层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
视图(View),即表现层存取模型及调取恰当模板的相关逻辑。模型与模板的桥梁。

简单来说就是Model存取数据,View决定需要调取哪些数据,而Template则负责将调取出的数据以合理的方式展现出来。

在刚创建的article 模型的文件夹中打开 models.py文件,输入以下内容

from django.db import models

# Create your models here.
# 导入内建的User模型。
from django.contrib.auth.models import User
# timezone 用于处理时间相关事务。
from django.utils import timezone

# 博客文章数据模型
class ArticlePost(models.Model):
    # 文章作者。参数 on_delete 用于指定数据删除的方式
    author = models.ForeignKey(User, on_delete=models.CASCADE)

    # 文章标题。models.CharField 为字符串字段,用于保存较短的字符串,比如标题
    title = models.CharField(max_length=100)

    # 文章正文。保存大量文本使用 TextField
    body = models.TextField()

    # 文章创建时间。参数 default=timezone.now 指定其在创建数据时将默认写入当前的时间
    created = models.DateTimeField(default=timezone.now)

    # 文章更新时间。参数 auto_now=True 指定每次数据更新时自动写入当前时间
    updated = models.DateTimeField(auto_now=True)
    # 内部类 class Meta 用于给 model 定义元数据
    class Meta:
    	# ordering 指定模型返回的数据的排列顺序
    	# '-created' 表明数据应该以倒序排列
        ordering = ('-created',)

    # 函数 __str__ 定义当调用对象的 str() 方法时的返回值内容
    def __str__(self):
    	# return self.title 将文章标题返回
        return self.title

9、数据迁移 对数据库进行增删改查 都需要进行数据迁移的操作

#通过运行 makemigrations 命令,创建新的迁移表 Django 会检测你对模型文件的修改,并且把修改的部分储存为一次迁移。
python manage.py makemigrations
#命令选中所有还没有执行过的迁移并应用在数据库上,也就是将模型的更改同步到数据库结构上
python manage.py migrate

在每次修改 models.py文件后都要执行以上的命令,

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

古月_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值