(四)django视频笔记(配合第三篇一起食用,味道更佳哦)
2017-01-05 10:47
316 查看
视频地址网站(不错哦,可惜更新速度太慢,值得一看):http://www.fanhuaxiu.com/
以下参考官方教程步骤:首页》How-to guides 》Managing static files (e.g. images, JavaScript, CSS)
https://docs.djangoproject.com/en/1.10/howto/static-files/
first:Make sure that django.contrib.staticfiles is included in your INSTALLED_APPS.
second:In your settings file, define STATIC_URL, for example:
其实一二步可以不管,因为django自动做好了。
third(这一步可以暂时跳过,到最后再做):将下载好的html文件中的代码做如下修改:
PS:如果想让django不止在默认APP的static文件中寻找静态文件,可以这么做: you can define a list of directories (STATICFILES_DIRS) in your settings file where Django will also look for static files. For example:
forth:在APP目录下,(django默认在APP目录下)新建一个static文件夹,把除了.html文件的所有静态文件都放入static中,把.html文件放入templates文件夹中;
fifth:在urls.py文件中添加以下代码:
sixth:可以考虑做第三步了,不过每个.html文件都要做第三步,太麻烦,做了很多重复的工作,所以考虑把基本模板抽离出来建成base.html,公共部分放在base.html中,然后使用继承模板的方式减少工作量;
base.html如下:
其他继承base.html的文件:
八,up主解答粉丝问题,没有实质内容跳过;
大多数网站都要建立user对象,django提供了两种方法,第一种用django自带的user对象(字段较少),当然也可以在此基础上进行添加字段;第二种方法:完全DIY,想要多少字段就用多少字段;
第一种django自带(大概有十个字段基础上,自己再添加新的字段):
官网链接:Home》Common Web application tools》Authentication》 API Reference
first:model.py中建立user模型:
second:在settings.py中添加自定义的设置参数:
third:更新数据库记录,同步数据库;
此时就会发现MyUser表中除了django自带的10个字段还新增了jifen字段
第二种方法(完全DIY,包括用户认证等等)(三步):
first:model.py中建立user模型:
second:在settings.py中添加自定义的设置参数:
second:在settings.py中添加自定义的设置参数:
PS:注意自定义的user数据模型必须保证数据库中为空,即数据库中不能已经更新了django自带的user数据模型,这样会冲突,导致报错;所以:删除原来更新的数据库和数据库记录;重建一个全新的数据库;
third:更新数据库记录,同步数据库;
PS:此时默认情况下MyUser表会有四个字段:id,password,last_login,identifier;之后你可以自己添加需要字段(第一步),再重复第三步即可,比如这里添加jifen=models.IntegerField(‘积分’,default=0)到第一步中
七、django结合boostrap(即使用静态文件)(0+6步)
zero:利用搜索引擎下载boostrap模板,解压缩,里面有js,css,html,images等文件;以下参考官方教程步骤:首页》How-to guides 》Managing static files (e.g. images, JavaScript, CSS)
https://docs.djangoproject.com/en/1.10/howto/static-files/
first:Make sure that django.contrib.staticfiles is included in your INSTALLED_APPS.
second:In your settings file, define STATIC_URL, for example:
In your settings file, define STATIC_URL, for example: STATIC_URL = '/static/'
其实一二步可以不管,因为django自动做好了。
third(这一步可以暂时跳过,到最后再做):将下载好的html文件中的代码做如下修改:
#在最开头引入 {% load static %} #所有资源文件src都要修改 <img src="{% static "my_app/example.jpg" %}" alt="My image"/>
PS:如果想让django不止在默认APP的static文件中寻找静态文件,可以这么做: you can define a list of directories (STATICFILES_DIRS) in your settings file where Django will also look for static files. For example:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), '/var/www/static/', ]
forth:在APP目录下,(django默认在APP目录下)新建一个static文件夹,把除了.html文件的所有静态文件都放入static中,把.html文件放入templates文件夹中;
fifth:在urls.py文件中添加以下代码:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # ... the rest of your URLconf goes here ... ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
sixth:可以考虑做第三步了,不过每个.html文件都要做第三步,太麻烦,做了很多重复的工作,所以考虑把基本模板抽离出来建成base.html,公共部分放在base.html中,然后使用继承模板的方式减少工作量;
base.html如下:
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="{% static "my_app/style.css" %}" /> <title>{% block title %}My amazing site{% endblock %}</title> </head> <body> <div id="sidebar"> {% block sidebar %} <ul> <li><a href="/">Home</a></li> <li><a href="/blog/">Blog</a></li> </ul> {% endblock %} </div> <div id="content"> {% block content %}{% endblock %} </div> </body> </html>
其他继承base.html的文件:
{% extends "base.html" %} {% block title %}My amazing blog{% endblock %} {% block content %} {% for entry in blog_entries %} <h2>{{ entry.title }}</h2> <p>{{ entry.body }}</p> {% endfor %} {% endblock %}
八,up主解答粉丝问题,没有实质内容跳过;
九、自定义用户user对象的数据模型建立
官方链接:Home》Common Web application tools》Authentication》Customizing authentication大多数网站都要建立user对象,django提供了两种方法,第一种用django自带的user对象(字段较少),当然也可以在此基础上进行添加字段;第二种方法:完全DIY,想要多少字段就用多少字段;
第一种django自带(大概有十个字段基础上,自己再添加新的字段):
官网链接:Home》Common Web application tools》Authentication》 API Reference
first:model.py中建立user模型:
#注意继承的类为AbstractUser from django.contrib.auth.models import AbstractUser class MyUser(AbstractUser): #自己添加的jifen字段 jifen=models.IntegerField('积分',default=0) #以下为每个数据模型都有的 class Meta: db_table='MyUser'#数据库表表名 def __str__(self): return self.username #这里得返回字符串字段,不能用id,django规定
second:在settings.py中添加自定义的设置参数:
AUTH_USER_MODEL = 'myapp.MyUser'
third:更新数据库记录,同步数据库;
python manage.py makemigrations myapp python manage.py migrate
此时就会发现MyUser表中除了django自带的10个字段还新增了jifen字段
第二种方法(完全DIY,包括用户认证等等)(三步):
first:model.py中建立user模型:
second:在settings.py中添加自定义的设置参数:
AUTH_USER_MODEL = 'myapp.MyUser'
from django.contrib.auth.models import AbstractBaseUser class MyUser(AbstractBaseUser): # 以下两个变量是必须提供 identifier = models.CharField(max_length=40, unique=True) USERNAME_FIELD = 'identifier' #自己添加的jifen字段 jifen=models.IntegerField('积分',default=0) #以下为每个数据模型都有的 class Meta: db_table='MyUser'#数据库表表名 def __str__(self): return self.USERNAME_FIELD
second:在settings.py中添加自定义的设置参数:
AUTH_USER_MODEL = 'myapp.MyUser'
PS:注意自定义的user数据模型必须保证数据库中为空,即数据库中不能已经更新了django自带的user数据模型,这样会冲突,导致报错;所以:删除原来更新的数据库和数据库记录;重建一个全新的数据库;
third:更新数据库记录,同步数据库;
python manage.py makemigrations myapp python manage.py migrate
PS:此时默认情况下MyUser表会有四个字段:id,password,last_login,identifier;之后你可以自己添加需要字段(第一步),再重复第三步即可,比如这里添加jifen=models.IntegerField(‘积分’,default=0)到第一步中
相关文章推荐
- 树链剖分(一)(#请配合树链剖分(二)以及线段树一起食用-_-#)
- 安卓 下拉刷新 与Recyclerview配合食用(新手笔记-16)
- 看django视频笔记
- 【学习笔记】SIFT尺度不变特征 (配合UCF-CRCV课程视频)
- Centos下 ffmpeg 和opencv一起配合处理视频
- 孙鑫C++视频笔记(11)图形的保存和重绘
- 孙鑫教学视频笔记 (16)线程同步与异步套接字编程
- 孙鑫VC++视频教程笔记(13)文档与串行化
- Django at a glance 笔记
- Django学习笔记
- 孙鑫VC++视频教程笔记之---Lesson 7 对话框
- 看完了Writing your first Django app, part 1,我的笔记(1)
- 孙鑫C++视频笔记(14)网络编程
- 孙鑫教学视频笔记(18)ActiveX 控件
- 孙鑫教学视频笔记(20)Hook
- Directshow(SDK)学习笔记九_视频捕捉
- 重构学习笔记之代码的坏味道
- 孙鑫教学视频笔记(19)动态链接库
- 孙鑫VC++视频教程笔记之---Lesson 6 菜 单
- 看孙鑫老师VC++视频教程笔记 之 多线程编程(二)