Django(三)
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(三)