Django 小实例S1 简易学生选课管理系统 第2节——新建项目(project)并进行设置

点击查看教程总目录

作者自我介绍:b站小UP主时常直播编程+红警三python1对1辅导老师

0 - 版本说明

  • python: 3.6.5
  • Django: 2.2.11

安装或更新见本人博客Django自学笔记0-2 框架版本与相关工具

1 - 新建项目

关于新建项目,我之前的博客有详细写过:

Django自学笔记 1-1 新建项目

所以这里简单展示新建过程和结果。

  • 通过命令行新建本项目(本项目名为 SSCMS)
django-admin startproject SSCMS

运行后项目文件夹结构如下

SSCMS
|--manage.py
|--SSCMS
|--settings.py
|--urls.py
|--wsgi.py
|--__init__.py
  • 使用Pycharm新建本项目

File->New Project后,左侧栏选择Django,Location设置为自己的项目文件夹(没有会自动新建),其他不动,截图如下

点击create就好了,此时项目文件夹结构如下

SSCMS
|--manage.py
|--SSCMS
| |--settings.py
| |--urls.py
| |--wsgi.py
| |--__init__.py
|--templates

这里和上方命令行新建的项目文件夹结构中相比,多了一个templates文件夹,

没关系,没有 templates 文件夹新建一个templates文件夹就好。

这里简单说一下,templates文件夹是用来存放模板template的。

模板template具体后面会说。

2 - 设置

理论上在1中会自动生成设置好了的设置文件:./SSCMS/settings.py

但是由于版本不同或者一些其他的原因,可能会存在设置文件不对(没设置完)的情况。

此时需要手动校对下./SSCMS/settings.py, 主要是检查设置下这几个

  • INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
  • MIDDLEWARE
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
  • TEMPLATES
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
  • DATABASES
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}

同时后续我们也需要添加一些我们自己的设置,这个后面遇到再说

3 - 新建应用(app) - user、course

对于新手而言,往往会困惑应用(app)是什么?

这里粗略的解释下,对于一个项目(project)而言,应用(app)可以理解为模块、子系统,用于承载一个项目中相对独立的一块功能。

就像一个房子一般要由多个房间(门厅,餐厅,客厅,卧室,厨房,卫生间等)组成,一个项目往往由多个应用组成。

比如本项目中,将教务管理系统分为用户、课程模块。

对于小的项目来说,只有一个应用也是可以的,但是对于大一点的项目,推荐将功能先划分为不同的模块,否则就像一个房子只用一个房间承载餐厅客厅卧室厨房卫生间的功能。。。

通过命令行新建应用(app)

py manage.py startapp app_name

教务管理系统中,我们首先需要用户模块,用户模块名为user, 那么命令行如下

py manage.py startapp user

如果系统中同时安装有python2和python3,则需要指定python版本为3

此时命令如下

py3 manage.py startapp user

新建应用(app)后,要去 setting.py中的INSTALLED_APPS添加应用user

INSTALLED_APPS添加后如下

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

建好应用(app)后项目文件夹如下

SSCMS
|--manage.py
|--SSCMS
| |--settings.py
| |--urls.py
| |--wsgi.py
| |--__init__.py
|--templates
|--user
|--admin.py
|--apps.py
|--migrations
| |--__init__.py
|--models.py
|--tests.py
|--views.py
|--__init__.py

然后同理,通过命令行新建应用:course,代表课程模块

py manage.py startapp course

setting.py中的INSTALLED_APPS添加应用course

4 - 建立相关文件夹

在本文第一部分,简单介绍过了用于存放模板的templates文件夹。

除了这个,我们还需要建立用于存放静态文件的static文件夹,

直接用电脑在项目文件夹下右键新建文件夹并命名为static即可

然后项目文件夹如下

SSCMS
|--manage.py
|--SSCMS
|--settings.py
|--urls.py
|--wsgi.py
|--__init__.py
|--static
|--templates
|--user
|--admin.py
|--apps.py
|--migrations
|--__init__.py
|--models.py
|--tests.py
|--views.py
|--__init__.py
|--course
|--admin.py
|--apps.py
|--migrations
|--__init__.py
|--models.py
|--tests.py
|--views.py
|--__init__.py

5 - 运行项目

  • A、通过Pycharm来运行(推荐)

Pycharm专业版会自动为Django项目添加一个可以运行的服务器配置

直接点击这里就可以运行了

对于什么都没有的新项目,运行后访问

http://127.0.0.1:8000/

将如下图

运行后,点击这个红色的方块,即可关闭服务器。

  • B、命令行运行服务器(不推荐)

    在项目文件夹中打开命令行并执行
py manage.py runserver

在命令行中,按Ctrl+C可关闭服务器

  • C、 Pycharm未自动添加一个可以运行的服务器配置

如果你是Pycharm社区版(免费版),可能Pycharm不会自动添加一个可以运行的服务器配置。

那么你需要手动添加一个服务器配置

在pycharm右上角这里点击下拉后出现的Edit Configurations

在弹出的窗口中按照以下步骤操作



其中,

3中的name可以自己定义,

4中的文件要设置成自己项目下的manage.py文件

操作完成后点击窗体右下角的Apply按钮就好。

就可以像本部分A(第五部分通过Pycharm来运行)中那样运行这个项目了

Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置的更多相关文章

  1. Django 小实例S1 简易学生选课管理系统 12 CSS样式完善

    Django 小实例S1 简易学生选课管理系统 第12节--CSS样式完善 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块的逻辑代码到这里 ...

  2. Django 小实例S1 简易学生选课管理系统 11 学生课程业务实现

    Django 小实例S1 简易学生选课管理系统 第11节--学生课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,学生需要拥 ...

  3. Django 小实例S1 简易学生选课管理系统 10 老师课程业务实现

    Django 小实例S1 简易学生选课管理系统 第10节--老师课程业务实现 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 课程模块中,老师将要使 ...

  4. Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)

    Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...

  5. Django 小实例S1 简易学生选课管理系统 8 CSS样式优化

    Django 小实例S1 简易学生选课管理系统 第8节--CSS样式优化 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 前面的几节下来,用户模块基 ...

  6. Django 小实例S1 简易学生选课管理系统 7 修改个人信息

    Django 小实例S1 简易学生选课管理系统 第7节--修改个人信息 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 用户模块除了注册登录之外,还 ...

  7. Django 小实例S1 简易学生选课管理系统 6 实现登录逻辑

    Django 小实例S1 简易学生选课管理系统 第6节--实现登录逻辑 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 业务逻辑 本教程第四节里 ...

  8. Django 小实例S1 简易学生选课管理系统 3 创建用户模型(model)

    Django 小实例S1 简易学生选课管理系统 第3节--创建用户模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新 ...

  9. Django 小实例S1 简易学生选课管理系统 4 实现登录页面

    Django 小实例S1 简易学生选课管理系统 第4节--实现登录页面 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新的额外知识点: ...

随机推荐

  1. 5.java内存模型详细解析

    一. java结构体系 Description of Java Conceptual Diagram(java结构) 我们经常说到JVM调优,JVM和JDK到底什么关系,大家知道么?这是java基础. ...

  2. 【数据结构与算法】二叉树的 Morris 遍历(前序、中序、后序)

    前置说明 不了解二叉树非递归遍历的可以看我之前的文章[数据结构与算法]二叉树模板及例题 Morris 遍历 概述 Morris 遍历是一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1 ...

  3. 11.4.2 LVS—NAT

    Virtual Server via NAT(VS-NAT) 用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,, ...

  4. Linux基本命令 和 Regex 正则表达式

    Linux基本命令 和 Regex 正则表达式 Regex 基本语法 常用匹配规则 [aeiouAEIOU] # 从中随机选择一个 [0-9]{4} # 从中选择4个 .* # 匹配任意字符 \w # ...

  5. C# 提取PDF中的表格

    本文介绍在C#程序中(附VB.NET代码)提取PDF中的表格的方法,调用Spire.PDF for .NET提供的提取表格的类以及方法等来获取表格单元格中的文本内容:代码内容中涉及到的主要类及方法归纳 ...

  6. 【Azure Developer】如何验证 Azure AD的JWT Token (JSON Web 令牌)?

    问题描述 使用微软Azure AD,对授权进行管理.通过所注册应用的OAuth API(https://login.chinacloudapi.cn/{TENANT ID}/oauth2/v2.0/t ...

  7. 时间轮机制在Redisson分布式锁中的实际应用以及时间轮源码分析

    本篇文章主要基于Redisson中实现的分布式锁机制继续进行展开,分析Redisson中的时间轮机制. 在前面分析的Redisson的分布式锁实现中,有一个Watch Dog机制来对锁键进行续约,代码 ...

  8. 第五次Alpha Scrum Meeting

    本次会议为Alpha阶段第五次Scrum Meeting会议 会议概要 会议时间:2021年4月30日 会议地点:线上会议 会议时长:15min 会议内容简介:本次会议以主要围绕卡牌对接的诸多问题与对 ...

  9. [no_code][Beta]项目展示博客

    $( "#cnblogs_post_body" ).catalog() 团队项目链接 Beta阶段核心开发点: github 前端 github 后端 github OCR文档-含 ...

  10. [对对子队]Alpha阶段项目展示博客

    Alpha阶段项目展示博客 1 团队成员的简介和个人博客地址 成员 头像 岗位 博客 个人介绍 黄贤昊 PM 17373253 喜欢玩游戏和做游戏,项目经验基本都和游戏相关,擅长摸鱼,偶尔敬业. 刘子 ...