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就是别名显示,很多地方都是这么用。