Loading

Django(二)创建app,设置相关后台

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

1 INSTALLED_APPS = [
2     'django.contrib.admin',
3     'django.contrib.auth',
4     'django.contrib.contenttypes',
5     'django.contrib.sessions',
6     'django.contrib.messages',
7     'django.contrib.staticfiles',
8     'Plan.apps.PlanConfig',   #此行为添加
9 ]

 

记得最后一个逗号,根据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='0')
    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就是别名显示,很多地方都是这么用。

 

posted @ 2017-12-22 00:17  上官飞鸿  阅读(450)  评论(0编辑  收藏  举报