Django实际开发

Django 开发个人博客全过程(未完)

一、建立项目

  1. 建立虚拟环境:python -m  venv+虚拟环境名
  2. 激活虚拟环境:虚拟环境名Scriptsactivate
  3. 安装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

  1. HttpResponseRedirect() 和 reverse()
  2. 在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/’一般为登录页面

第五、设置样式

  1. 熟悉应用程序django-bootstrap:
  2. Settings设置  BOOTSTRAP3 = {'include_jquery':True,}: 这样能让能够使用Bootstrap模板的一些交互式元素,无需手工下载jQuery并将其放到正确的地方。
  3. 使用jumbotron(超大屏样式)设置样式:
原文地址:https://www.cnblogs.com/qsj-python/p/13034058.html