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就是别名显示,很多地方都是这么用。
作者:上官飞鸿
出处:https://www.cnblogs.com/jackadam/p/8083236.html
版权:本作品采用「知识共享-署名-非商业性-禁止演绎(CC-BY-NC-ND)」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!