Django学习笔记01

Django 是Python编写的一个开源Web框架,可以用来快速搭建一个高性能的网站。

本人使用PyCharm软件开发。


一、搭建开发环境

  1. 安装django
    终端下输入
    pip install django
  2. 新建Django工程
    django-admin startproject blogproject
    生成blogproject目录,其文件结构如下
blogproject\
    blogproject\
        __inint__.py
        settings.py
        urls.py
        wegi.py
    manage.py   
  1. 开启Web服务器
python manage.py runserver

本地开启一个Web服务器
浏览器输入http://127.0.0.1:8000,可以看到Django的相关界面。
默认环境为应为环境,更改settings.py文件,设置为中文环境。

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

重新打开Web服务器会有安装成功的中文提示。


 二、建立博客应用

1.建立博客应用
将自己编写的代码组织到应用中,并且一个应用只提供一种功能。  
把功能相关的代码组织到一个文件夹中,这个文件夹就可以看作一个应用。
使用此命令创建一个blog应用

python manage.py startapp blog

生成一个blog的文件夹。
其结构如下

blog\
    admin.py
    apps.py
    __init__.py
    migrations\
        __init__.py
    models.py
    tests.py
    views.py
  1. 注册此应用
    编辑settings.py文件,将blog应用添加到INSTALLED_APPS设置项中。
# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

三、创建Django博客的数据库模型

  1. 设计数据库表结构
    文章一般具有标题、正文、作者、发表时间、分类、标签等数据。
文章id 标题 正文 发表时间 分类 标签

为节省空间,将分类和标签提取出,做成单独的数据库表,再把文章和分类标签关联起来。
例如

分类id 分类名
1 Django
2 Python
标签id 标签名
1 Django学习
2 Python学习

2. 编写博客模型代码
Django将数据库的语法转换成了Python的语法形式。django会把Python代码翻译成对应的数据库操作语言。
即django提供了ORM(Object Relational Mapping)系统。
编辑models.py文件,

from django.db import models
class Category(models.Model):
    name = models.CharField(max_length=100)

对应数据库中,创建一个名为Category的表格,此表格的列名为name。还有一个列id,Django会自动创建。
一个Python类对应一个数据库表格,类名即表名,类的属性对应着表格的列,属性名即列名。


四、迁移数据库

  1. 迁移数据库
python manage.py makemigrations 
python manage.py migrate

可能会报错

__init__() missing 1 required positional argument: 'on_delete'

解决办法

models.ForeignKey('BookInfo',on_delete=models.CASCADE,)

ForeignKey()加上on_delete=models.CASCADE
即在外键值后面加上on_delete=models.CASCADE

python manage.py sqlmigrate blog 0001

可以查看数据库的创建过程。
2. 选择数据库版本
Python内置SQLite3数据库,Django默认使用此数据库。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
  1. 操作数据库
    以Django的方式操作数据库
python manage.py shell

创建分类和标签

>>> from blog.models import Category, Tag, Post
>>> c = Category(name='category test')
>>> c.save()
>>> t = Tage(name='tag test')
>>> t.save()

zhyuntao
[email protected]
passof123
存取数据

未完待续
参考自追梦人物的博客。

你可能感兴趣的:(Django学习笔记01)