location 最后一个文件夹名就是project名,我用了DjangoProject。

Application 是自动加入的APP名字,我用了DjangoTest

1.添加APP
在pycharm的工具栏找到 Tools,点击之后会有“Run manage.py task”选项,点击它之后,在pycharm下面会出现一个输入界面,

在里面输入“startapp appName(你的App名称)”,回车之后就可以在工程下面看到你新建的App了。
命令:startapp Plan
会自动创建目录,文件……
后续文章也主要使用这个名称,不再说明

第一篇文章,我们创建了APP  DjangoTest   现在又创建了一个APP  Plan.

2.把新建的APP  Plan加入APPS列表:

编辑项目setting.py,(DjangoProject/setting.py)

INSTALLED_APPS = 中加入新建的app

 INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'Plan.apps.PlanConfig', #此行为添加
]

记得最后一个逗号,根据pycharm的提示,很容易写的。

3.设置公用静态路径:

编辑项目setting.py,(DjangoProject/setting.py)最下面一部分

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.10/howto/static-files/
STATIC_URL = '/static/'#URL访问路径

STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),#URL对应的路径和URL名称设一致,编写想关代码时提示是正确的

这里就是把项目文件夹下的static 变成网络访问的  http://localhost:8000/staitc目录了

本地放在static文件夹下的文件,都可以直接网络访问。

4.创建数据结构,数据模型………………随便你怎么叫吧
编辑 DjangoTest目录下 models.py

注意add_date,是创建时间,mod_date是修改时间,这个是特殊设置,后台也不可以随便改,django默认还不在后台显示。

class Train_plan(models.Model):#车次计划表
add_date = models.DateTimeField('保存日期', default=timezone.now)
mod_date = models.DateTimeField('最后修改日期', auto_now=True)
date =models.DateField('计划日期')
train_name=models.CharField(max_length=16,verbose_name='车次名称')
start_time=models.TimeField('计划开始时间')
end_time=models.TimeField('计划结束时间')
track=models.IntegerField('股道',default='')
plan_end=models.TimeField('图定终到时间')
plan_in=models.TimeField('计划入库时间')
plan_out=models.TimeField('计划出库时间')
plan_start=models.TimeField('图定发车时间')
note=models.TimeField('备注',null=True,blank=True)
class Meta:
verbose_name='车次计划'
verbose_name_plural= '车次计划'

以后会有文章说明数据类型,额外的方法。

运行命令创建数据结构,数据表

makemigrations

migrate

5.注册app到管理界面

编辑app目录下admin.py (DjangoTest/admin.py)

from .models import Train_plan      #例程使用
from .models import Carriage_plan #非例程使用
from .models import Carriage_history#非例程使用
class YourAdmin(admin.ModelAdmin):#例程使用
  readonly_fields = ('add_date', 'mod_date',)
admin.site.register(Train_plan,YourAdmin)#例程使用
admin.site.register(Carriage_plan,YourAdmin)#非例程使用
admin.site.register(Carriage_history,YourAdmin)#非例程使用

readonly_fields,是把默认后台不会显示的内容以只读形式显示出来。可以给多个表来使用,当然,要有相同的条目。

6.登陆后发现app名字是类名,修改为中文

编辑app目录下apps.py (DjangoTest/app.py)

from django.apps import AppConfig

class DjangoTestConfig(AppConfig):
name = 'DjangoTest'
verbose_name = '测试管理'

verbose_name就是别名显示,很多地方都是这么用。

Django(二)创建app,设置相关后台的更多相关文章

  1. Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)

    摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...

  2. django-1创建项目创建app设置setting、urls、templates、views等

    1. python -m django --version 查看版本 1.11.4 在需要创建项目的目录下执行: 2. django-admin startproject myblog => 创 ...

  3. django框架创建app及使用、

    App 创建一个app : python manage.py startapp app01 admin: from django.contrib import admin # Register you ...

  4. Django 2 创建app

    python manage.py startapp polls 创建model 创建完model以后使用 查看sql python manage.py sql polls 然后使用 python ma ...

  5. Django创建App报错

    在django下创建APP项目时遇到的坑 python manage.py startapp app01 报错内容如下: 解决:找到报错中的文件夹151行删除items(),)中的逗号即可 在命令行下 ...

  6. Python Django CMDB项目实战之-2创建APP、建模(models.py)、数据库同步、高级URL、前端页面展示数据库中数据

    基于之前的项目代码来编写 Python Django CMDB项目实战之-1如何开启一个Django-并设置base页index页文章页面 现在我们修改一个文章列表是从数据库中获取数据, 下面我们就需 ...

  7. 四、Django设置相关

    1.全局设置 setttings文件 import os import sys # Build paths inside the project like this: os.path.join(BAS ...

  8. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

  9. Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点)

    Django---静态文件配置,post提交表单的csrf问题(日后细说),创建app子项目和分析其目录,ORM对象关系映射简介,Django操作orm(重点) 一丶Django的静态文件配置 #we ...

随机推荐

  1. JavaScript:正则表达式 全局

    关于正则表达式的 RegExp方法:test,exec, String 方法:match,search, 全局 g var str = "abababa"; var re = /a ...

  2. dubbo 实战总结

    1,出现重复调用.因为有重试机制,可以改为异步调用或者幂等操作.

  3. v-bind绑定属性样式

    一.class的四种绑定方式 1.布尔值的绑定方式 <div id="demo"> <span v-bind:class="{'class-a':isA ...

  4. 2、extract-text-webpack-plugin提取Sass编译的Css

    cnpm install css-loader --save-dev    //css-loader 是将css打包进js cnpm install style-loader --save-dev   ...

  5. 【转载】可被路由的协议 & 路由协议 & 不可被路由的协议 的区别

    原文地址:可被路由的协议 & 路由协议 & 不可被路由的协议 的区别 术语routed protocol(可被路由的协议)和routing protocol(路由协议)经常被混淆.可被 ...

  6. stm32 pwm 电调 电机

    先上代码 python 树莓派版本,通俗表现原理.stm32 C语言版本在后面 import RPi.GPIO as GPIO import time mode=2 IN1=11 def setup( ...

  7. Django内置模版过滤器

    Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 过滤器 说明 add 加法 addslashes 添加斜杠 capfirst 首字母大写 center 文本居中 cut 切除 ...

  8. 《剑指offer》第八题(重要!查找二叉树的中序遍历的下一个结点)

    文件一:main.cpp // 面试题:二叉树的下一个结点 // 题目:给定一棵二叉树和其中的一个结点,如何找出中序遍历顺序的下一个结点? // 树中的结点除了有两个分别指向左右子结点的指针以外,还有 ...

  9. css 键盘

    <html lang="en"> <head> <meta charset="UTF-8"> <title>Do ...

  10. 51nod 1682 中位数计数(前缀和)

    51nod 1682 中位数计数 思路: sum[i]表示到i为止的前缀和(比a[i]小的记为-1,相等的记为0,比a[i]大的记为1,然后求这些-1,0,1的前缀和): hash[sum[i]+N] ...