Django 开发个人博客全过程(未完)
一、建立项目
- 建立虚拟环境:python -m venv+虚拟环境名
- 激活虚拟环境:虚拟环境名Scriptsactivate
- 安装Django:解决安装超时的方法
1)直接复制网站下载
2)pip --default-timeout=延长的时间 install ...
4.利用django创建项目:django-admin startobject+项目名
5.创建SQLite数据库:python manage.py migrate
6.运行查看项目:python manage.py runserver
二、创建应用程序APP:
1.定义模型 def __str__(self): #该方法的调用用于显示模型
2.激活模型:设置settings.py 向INSTALL_APP加入相应的应用程序
3.让Django迁移修改数据库:python manage.py makemigrations+项目名
4.Django管理网站
1)创建超级用户:python manage.py createsuperuser
2)向管理网站注册模型分为两步:Ⅰ、 from 应用名.models import 类
Ⅱ、admin.site.register(类名)
5.models.Model : django中一个定义了模型基本功能的类
6.Django shell
1)启动python解释器:python manage.py shell
2)获取模型中的实例:from 某模块 import 类, 类.objects.all()
3)获取实例中的元素:msgs = 类.objects.all()
For msg in msgs:
Print(msg.id, msg)
4)外键Foreignkey相关联的实例可以直接用相关模型的小写名称+下划线+set来获取数据
三、创建网页
1.映射URL
1) path不是不能用正则而是要调用django.urls.re_path()函数,来使用正则。
2.编写视图
3.编写模板
4.模板继承
四、用户账户:user
- HttpResponseRedirect() 和 reverse()
- 在Django2.0中内置登陆视图不再是函数,而是类,位置在django.contrib.auth.views import LoginView
from django.contrib.auth.views import LoginView
urlpatterns = [
#登录界面 LoginView.as_view后面要加上()
url(r'^login/$',LoginView.as_view(template_name='users/login.html'),name='login')]
3.登陆功能的实现
4.注销功能的实现
5.注册功能的实现
6.{% if is_usercreationform %} 身份验证
7.authenticate,login,logout
8.{% csrf_token %} :跨站请求伪造
9.{{ form.as_p }} :让Django自动创建显示表单所需的全部字段
10.让用户拥有自己的数据
11.将数据关联到特定的用户:Ⅰ、设置外键owner = models.Foreignkey(User)
Ⅱ、用过滤器objects.filter(owner=request.user)
12.django.contrib.auth.decorators import login_required(装饰器)
13.@login_required装饰器:一种放在函数定义前面的指令,只允许已登录的用户访问。
14.了解django.contrib.auth模块里有什么:
15.报错__init__() missing 1 required positional argument: 'on_delete'的原因: 在django2.0后,定义外键和一对一关系的时候需要加on_delete=models.CASCADE(级联删除,避免关联错误)选项,此参 数为了避免两个表里的数据不一致问题,不然会报错
16.重新定向或是固定定向到某页面:在settings.py文件设置:LOGIN_URL=’/users/login/’一般为登录页面
第五、设置样式
- 熟悉应用程序django-bootstrap:
- Settings设置 BOOTSTRAP3 = {'include_jquery':True,}: 这样能让能够使用Bootstrap模板的一些交互式元素,无需手工下载jQuery并将其放到正确的地方。
- 使用jumbotron(超大屏样式)设置样式: