1.setting.py
添加APP及其设置
INSTALLED_APPS = [
'django.contrib.admin',
...
#添加创建的APP
'books.apps',
'books.apps.BooksConfig',
]
添加模板路径(也包括jpg,csv等其它文件)
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
BASE_DIR + "/templates/layout", #自定义模板路径
BASE_DIR + "/books",
],
...
},
]
设置语言和时区
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai' #设置时区
设置静态文件(CSS, JavaScript, Images)
STATIC_URL = '/static/'
#css,js路径
STATIC_ROOT=os.path.join(BASE_DIR,'static')
STATICFILES_DIRS=[
("css",os.path.join(STATIC_ROOT,'css')),
("js",os.path.join(STATIC_ROOT,'js')),
("images",os.path.join(STATIC_ROOT,'images')),
]
2.urls.py
后台管理界面汉化设置
admin.site.site_header="图书管理系统"
admin.site.index_title="管理界面"
admin.site.site_title="图书管理系统"
/time/plus/3 的url方法
from django.conf.urls import url #解决办法一
urlpatterns = [
path('admin/', admin.site.urls),
...
path('time/',view.current_datetime),
url(r'^time/plus/(\d{1,2})/$',view.hours_ahead),#解决办法一
...
]
弃用Context
def current_datetime(request):
current_date =datetime.datetime.now()
#t=get_template('current_datetime.html')
#html=t.render({'current_date':now}) #弃用Context
#return HttpResponse(html)
return render_to_response('current_datetime.html',{'current_date':locals()})
添加books中urls.py路由
from django.conf.urls import url,include
urlpatterns = [
...
url(r'^', include('books.urls')),
]
3.books.views.py
升级django-ajax-selects,然后把代码里边的mimetype换成content_type
pip install --upgrade django-ajax-selects
def my_image(request):
image_data=open("/touxiang.jpg","rb").read()
return HttpResponse(image_data,content_type="image/jpg")
4.books.apps.py
扫描二维码关注公众号,回复:
11000108 查看本文章
from django.apps import AppConfig
class BooksConfig(AppConfig):
name = 'books'
verbose_name='图书管理系统'
5.books.models.py
class Book(models.Model):
title=models.CharField("书名",max_length=100)
#多对多
authors=models.ManyToManyField(Author,verbose_name="作者")
#外键
publisher=models.ForeignKey(Publisher,on_delete=models.CASCADE,verbose_name='出版商')
publication_date=models.DateField("出版日期")
#num_pages=models.IntegerField(blank=True,null=True)
#模型管理器设定
book=models.Manager()
class Meta:
verbose_name='图书' #别名
verbose_name_plural=verbose_name
def __str__(self):
return self.title
6.books.admin.py
from django.contrib import admin
from books.models import Publisher,Book,Author
#自定义管理界面
class PublisherAdmin(admin.ModelAdmin):
list_display = ['id','name','website']
class BookAdmin(admin.ModelAdmin):
list_display = ['id','title','publisher','publication_date']
list_filter = ('publication_date',)
date_hierarchy = 'publication_date'
ordering = ('-publication_date',)
#fields = ('title','authors','publisher','publication_date')
filter_horizontal = ('authors',)
raw_id_fields = ('publisher',)
class AuthorAdmin(admin.ModelAdmin):
list_display = ['id','first_name','last_name','email']
search_fields = ('first_name','last_name')
# Register your models here.
admin.site.register(Publisher,PublisherAdmin)
admin.site.register(Book,BookAdmin)
admin.site.register(Author,AuthorAdmin)
7.html模板
<head>
{% load staticfiles %}
<title>Home</title>
<link href="{% static 'css/bootstrap.css' %}" rel="stylesheet" type="text/css" media="all">
<script src="{% static 'js/bootstrap.min.js' %}"></script>
...
</head>
8.管道
{% if books %}
<!--管道-->
<p>Found {{ books|length }} book{{ books|pluralize }}.</p>
<ul>
{% for book in books %}
<li>{{ book.title }}</li>
{% endfor %}
</ul>
{% else %}
<p>No books matched your search criteria.</p>
{% endif %}