站点文件夹

假设网站项目名为qcblog, 在相应位置新建qcblog文件夹
在这个文件夹内:

django-admin startproject mysite .

新建站点文件夹.

新建home app
 python manage.py startapp home
基本设置

pycharmrun>run configuration:
Django: 从新建项目到网站上线_sqlite

mysite/setting中:

  1. 添加app列表
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'home',
]
  1. 修改时区
TIME_ZONE = 'Asia/Shanghai'
  1. 修改语言
LANGUAGE_CODE = 'zh-hans'
  1. 把默认的sqlite改为MySQL
DATABASES = {
    'slave': {#slave
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    "default": {#default
        "ENGINE": "django.db.backends.mysql",
        "NAME": "qcblog",
        "USER": "root",
        "PASSWORD": "685337",
        "HOST": "127.0.0.1",
        "PORT": "3306",
    },
}
  1. 修改模板文件配置
    新建模板文件夹templates
        'DIRS': [os.path.join(BASE_DIR,'templates')],
        'APP_DIRS': False,

Django: 从新建项目到网站上线_mysql_02

  1. 设置静态文件目录
STATIC_URL = '/static/'

STATICFILES_DIRS=(
    os.path.join(BASE_DIR,'static'),
)
python manage.py startapp blog
from django.db import models
from django.contrib.auth.models import User

class BlogArticle(models.Model):
    title=models.CharField(max_length=300)
    author=models.ForeignKey(User,related_name='blog_posts',on_delete=models.CASCADE)
    body=models.TextField(blank=True,default='')
    isOriginal=models.BooleanField(default=True)
    publish=models.DateTimeField(auto_now_add=True)
    classification=models.CharField(max_length=100,default='未分类')
    editModel=models.CharField(max_length=50,default='HTML')
    class Meta:
        ordering=('-publish',)

    def __str__(self):
        return self.title
python manage.py makemigrations blog
python manage.py migrate

新建超级用户

python manage.py createsuperuser

为文章添加后台视图
blog/admin中,

from django.contrib import admin
from .models import BlogArticle

class BlogArticleAdmin(admin.ModelAdmin):
    list_display = ('title','author','publish')
    list_filter = ('author','publish')
    search_fields = ('title','body')
    raw_id_fields = ('author',)
    date_hierarchy = 'publish'
    ordering = ['-publish','author']

admin.site.register(BlogArticle,BlogArticleAdmin)

设置路由
mysite\urls:

from django.urls import path,include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls', namespace='blog')), #主页
]

在blog中新建urls.py
设置blog的两个基本路由, 一个用来显示所有的文章, 一个用来根据文章id浏览文章
注意加上app_name,否则报错


app_name = "blog"

urlpatterns = [
    path("", views.blog_title, name='blog_title'),
    path('<int:article_id>/', views.blog_article, name='blog_article'),
]