上午科三一把过!
继续昨天的django进度,下几篇blog预计也是将一些重要步骤记录
注意!!python3.10及之后版本需要根据出错信息更改import
具体:将collections和_collections_abc交换
-创建虚拟环境
mkdir djangogirls
cd djangogirls
python -m venv myvenv(django目录下)
-进入虚拟环境
myvenv\Scripts\activate
-安装Django
pip install django==1.8
-创建一个Django项目
django-admin startproject mysite .
此时的目录视图
djangogirls
├───manage.py
└───mysite
settings.py
urls.py
wsgi.py
init.py
-更改设置
在settings.py文件中:
修改TIME_ZONE = ‘Asia/Shanghai’,STATIC_URL = ‘/static/’
最后添加STATIC_ROOT = os.path.join(BASE_DIR, ‘static’)
-为博客创建数据库
python manage.py migrate
出现一堆OK
-开启web服务器
python manage.py runserver
输入http://127.0.0.1:8000/
-停止web服务器
ctrl+break(HYEKU键盘是CTRL+pause)
-创建应用程序
python manage.py startapp blog
此时的目录视图
djangogirls
├── mysite
| init.py
| settings.py
| urls.py
| wsgi.py
├── manage.py
└── blog
├── migrations
| init.py
├── init.py
├── admin.py
├── models.py
├── tests.py
└── views.py
找到 INSTALLED_APPS 并在它下面添加一行’blog’
-创建一个博客文章模型
打开blog/models.py,删除所有并编写如下:
from django.conf import settings
from django.db import models
from django.utils import timezone
class Post(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True)
def publish(self):
self.published_date = timezone.now()
self.save()
def __str__(self):
return self.title
-为模型创建数据表
python manage.py makemigrations blog
python manage.py migrate blog
于是Post模型现在已经在我们的数据库里面了
-Django admin 管理后台
打开blog/admin.py,删除原有并替换:
from django.contrib import admin
from .models import Post
admin.site.register(Post)
-创建一个掌控整个网站所有东西的超级用户
python manage.py createsuperuser
设定用户名,邮箱,密码
升级Django版本
pip install –upgrade django==3.1.0
出现个大问题
RuntimeError at /admin/blog/post/add/
暂时猜想时Django和python版本不匹配,因为之前用到collections就有一堆不匹配
明天再说吧