一、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 files
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'common_static')
]
三、创建各级路由文件
在各个app下创建二级路由:
1.checkIn的app下,创建一个urls.py文件
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
2.在主urls.py下,配置指向checkIn这个app的路由(也就是各个应用下的urls.py)
from django.contrib import admin
from 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,将操作同步到数据库。