# Django新项目设置步骤
Table of Contents
一、setting设置
1.语言:
# django3.0开始LANGUAGE_CODE前面必须配相应的LANGUAGES配置如下from django.utils.translation import gettext_lazy as _LANGUAGES = [ ('zh-Hans', _('Chinese')),]LANGUAGE_CODE = 'zh-Hans'2.时区、国际化:参考链接
TIME_ZONE = 'Asia/Shanghai'USE_I18N = True # 国际化USE_L10N = True # 参考连接USE_TZ = False # True时,Django会在ORM查询的结果返回时,自动转换为UTC时间,不管数据库里面存的是什么时间3.添加app或设置ALLOWED_HOSTS = [”*”,]
二、文件夹处理
1.templates
项目根目录下有个自带的templates,
然后最好也在每个app下自己手动建一个templates,如app/templates/app/index.html,调用的时候可以这样使用:
def home(request): """Renders the home page.""" assert isinstance(request, HttpRequest) return render( request, 'app/index.html', { 'title':'Home Page', 'year':datetime.now().year, } )2.static
和templates一样,在app的目录下手动建一个static,
另外可以在区分详细一点,如app/static/app/content/bootstrap.min.css,调用的时候这样使用:
{% load static %}<link rel="stylesheet" type="text/css" href="{% static 'app/content/bootstrap.min.css' %}" /><link rel="stylesheet" type="text/css" href="{% static 'app/content/site.css' %}" /><script src="{% static 'app/scripts/modernizr-2.6.2.js' %}"></script>另外附上STATIC_URL、STATIC_ROOT、STATICFILES_DIRS三者区别的参考连接
所以根据上面的参考连接,可以在setting文件中配置公共的静态文件:
# STATICFILES_DIRS告诉django,首先到STATICFILES_DIRS里面寻找静态文件,其次再到各个app的static文件夹里面找STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'),)然后再来设置STATIC_ROOT,这个作用是在部署到正式环境时(debug=False),把所有收集完的静态文件放在统一的一个目录下:
#执行完python manage.py collectstatic,将静态文件复制到STATIC_ROOT指定的目录中"STATIC_ROOT = os.path.join(BASE_DIR, "collect_static")
#locate the common static filesSTATICFILES_DIRS = [ os.path.join(BASE_DIR, 'common_static')]三、创建各级路由文件
在各个app下创建二级路由:
1.checkIn的app下,创建一个urls.py文件
from django.urls import pathfrom . import viewsurlpatterns = [ path('', views.index, name='index'),]2.在主urls.py下,配置指向checkIn这个app的路由(也就是各个应用下的urls.py)
from django.contrib import adminfrom django.urls import path, include # 注意需要导入include,默认没有include
urlpatterns = [ path('checkin/', include('checkIn.urls')), path('admin/', admin.site.urls),]四、模型(数据库)管理
每个模型的物理存在方式就是一个Python的类Class,每个模型代表数据库中的一张表,每个类的实例代表数据表中的一行数据,类中的每个变量代表数据表中的一列字段。Django通过模型,将Python代码和数据库操作结合起来,实现对SQL查询语言的封装。也就是说,你可以不会管理数据库,可以不会SQL语言,你同样能通过Python的代码进行数据库的操作,这就是所谓的ORM。 ----刘江老师
把想要更新数据库的app,添加到install_app里,然后执行一次migrate:
python manage.py migrate
修改模型时的操作分三步:
·在models.py中修改模型;
·运行python manage.py makemigrations为改动创建迁移记录文件;
·运行python manage.py migrate,将操作同步到数据库。