码迷,mamicode.com
首页 > 其他好文 > 详细

Django(三)

时间:2017-12-22 03:30:17      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:ase   tco   migrate   history   工具   tools   部署   结束时间   不可   

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访问路径
STATIC_ROOT = os.path.join(BASE_DIR, deploy_static)#未来方便部署用的路径
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),#URL对应的路径和URL名称设一致,编写想关代码时提示是正确的
)
STATICFILES_FINDERS = ( #这个就是默认搜索顺序,不方便的时候,就上下调调顺序。
"django.contrib.staticfiles.finders.FileSystemFinder",
"django.contrib.staticfiles.finders.AppDirectoriesFinder"
)

 

STATICFILES_DIRS是搜索系统路径,django还会搜索app目录下的static目录。

简单说就是STATICFILES_DIRS是公用的静态文件,如jquery……

app目录下的static是这个app自有的,非公用的。

两个位置都会被搜索到

文件位置:项目/static/ (main/setting.py)

访问地址:ip:8000/static

这样代码不提示你错误。很多教程把STATIC_ROOT设为static 把STATICFILES_DIRS设为别的路径,可能不适合pycharm吧,因为pycharm提示路径错误或者没有提示。

 

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

 

Django(三)

标签:ase   tco   migrate   history   工具   tools   部署   结束时间   不可   

原文地址:http://www.cnblogs.com/jackadam/p/8083236.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!