Django 是Python编写的一个开源Web框架,可以用来快速搭建一个高性能的网站。
本人使用PyCharm软件开发。
pip install django
django-admin startproject blogproject
blogproject\
blogproject\
__inint__.py
settings.py
urls.py
wegi.py
manage.py
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
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',
]
文章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类对应一个数据库表格,类名即表名,类的属性对应着表格的列,属性名即列名。
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'),
}
}
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
存取数据
未完待续
参考自追梦人物的博客。