python学习

 

上午科三一把过!

继续昨天的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/

{LQ0ERA0J DT_VK31`@P4N2

-停止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就有一堆不匹配
明天再说吧

写两句?