• 多人博客项目(项目搭建)


    ---恢复内容开始---

    1、概述

      Django采用MVC架构设计的开源的WEB 快速开发框架

      优点 :

        能够快速的开发,如 Auth,Cache, 模板

        MVC设计模式

        实用的管理后台

        自带ORM, Template,Form,Auth核心组件

        简洁的URL 设计

        周边插件丰富

      缺点:

        框架中,因为东西大而全

        同步阻塞

      所以Django的设计目标就是一款大而全,便于企业快速开发 项目的框架,因此企业应用较广

    2、Django版本

      

    3、安装Django

      python使用3。6.x

      Django下载地址:https://www.djangoproject.com/download/

       

      本次使用Django 1.11 版本,它也是长期支持版本LTS, 请在虚拟环境中安装

      在虚拟环路径中,Lib/site-packages/django/bin 下有一个 django-admin.py ,从它开始

        $ diango-admin  --version

        $ diango-admin  

     1 (blog2) F:Python项目log12>django-admin
     2 
     3 Type 'django-admin help <subcommand>' for help on a specific subcommand.
     4 
     5 Available subcommands:
     6 
     7 [django]
     8     check
     9     compilemessages
    10     createcachetable
    11     dbshell
    12     diffsettings
    13     dumpdata
    14     flush
    15     inspectdb
    16     loaddata
    17     makemessages
    18     makemigrations
    19     migrate
    20     runserver
    21     sendtestemail
    22     shell
    23     showmigrations
    24     sqlflush
    25     sqlmigrate
    26     sqlsequencereset
    27     squashmigrations
    28     startapp
    29     startproject
    30     test
    31     testserver
    32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are
    33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
    执行django-admin可选命令

        注意:没有特殊声明,所有的操作都在项目根目录下

    4、创建django项目

      $ django-admin startproject blog .    注意最后有一个点

      否则:会出现两层blog   

        

      正常:

        

       上面明亮就在当前项目的根目录中构建了Django项目的初始文件, 点  代表项目根目录

        重要文件说明:

        • manage.py 本项目管理的命令行工具,应用创建,数据库迁移等都使用它完成
        • blog/settings.py 本项目的配置文件,数据库参数等
        • blog/urls.py url路径映射配置,默认情况下,只配置了/admin的路由
        • blog/wsgi:定义WSGI接口信息,一般无需改动

    5、数据库配置

      使用数据库,需要修改默认的数据库配置

      在主项目的settings.py下的DATABASES, 默认使用的是sqllite,修改为mysql  

     1 DATABASES = {
     2     'default': {
     3         'ENGINE':'diango.db.backends.mysql',
     4         'NAME': 'blog',
     5         'USER':'root',
     6         'PASSWORD':'123456',
     7         'HOST':'192.168.112.110',
     8         'PORT':'3306'
     9     }
    10 }

      HSOT 数据库主机,缺省是空字符串,代表localhost, 若是“/” 开头表示使用Unix Socket 连接  

      OPTIONS 选项,字典,参考MySQL文档

      内建的引擎有:

      • 'diango.db.backends.postgresql'
      • 'diango.db.backends.msyql'
      • 'diango.db.backends.sqlite3'
      • 'diango.db.backends.oracle'

    6、MySQL数据库驱动  

      https://docs.djangoproject.com/en/2.0/ref/databases/

      Django 支持mysql 5.5 +

      Django 官方推荐使用本地驱动 mysqlclient 1.3.7 +

        $ pip install mysqlclient,( 但是报错)

          

        下载地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/

    7、创建应用

      创建用户应用:$ python manage.py startapp user

      可能会报错,我是用的3.7版本,报错:

      

      解决办法:

      

      该应用完成 一下功能

        用户注册

        用户登录

      创建应用后,项目根目录下产生一个 user目录,有如下文件:

      

      

    8、注册应用

      在settings.py中增加user应用,目的是为了后台管理admin使用,或迁移migrate使用

      

    9、模型Model

      

      

      字段选项:注意 default不是创建数据库创建时的不填的初始值

      

      关系类型字段类:

      

      一对多时,自动创建会增加_id 后缀

      • 从一访问多,使用  对象.小写模型类_set
      • 从一访问一,使用  对象.小写模型类

      访问id   对象.属性_id

    10、创建User的Model类

      基类models.Model

      表名不指定默认使用<appname>_<model_name>  

     1 from django.db import models
     2 
     3 # Create your models here.
     4 
     5 class User(models.Model):
     6     class Meta:
     7         db_table = 'user'
     8     id = models.AutoField(primary_key=True)
     9     name = models.CharField(max_length=48, null=False)
    10     email = models.CharField(max_length=48,unique=True, null=False)
    11     password = models.CharField(max_length=128, null=False)
    12 
    13     def __repr__(self):
    14         return '<user{}{}'.format(self.id, self.name)

    11、迁移Migration

      迁移:从模型定义生成数据库的表

      1、生成迁移文件

      

      

        修改过Model类,还需要调用makemigrations ,然后migrate,迁移文件的序号会增加

        注意:迁移的应用必须在settings.py 的INSTALLED_APPS中注册

      2、执行迁移生成数据库的表

      

      

      

      执行了迁移,还同时生成了admin管理用的表

      查看数据库,user表创建好,字段设置正常

      

      如果修改 models.py 后,在迁移,会产生新的文件:

      

    ---恢复内容结束---

    1、概述

      Django采用MVC架构设计的开源的WEB 快速开发框架

      优点 :

        能够快速的开发,如 Auth,Cache, 模板

        MVC设计模式

        实用的管理后台

        自带ORM, Template,Form,Auth核心组件

        简洁的URL 设计

        周边插件丰富

      缺点:

        框架中,因为东西大而全

        同步阻塞

      所以Django的设计目标就是一款大而全,便于企业快速开发 项目的框架,因此企业应用较广

    2、Django版本

      

    3、安装Django

      python使用3。6.x

      Django下载地址:https://www.djangoproject.com/download/

       

      本次使用Django 1.11 版本,它也是长期支持版本LTS, 请在虚拟环境中安装

      在虚拟环路径中,Lib/site-packages/django/bin 下有一个 django-admin.py ,从它开始

        $ diango-admin  --version

        $ diango-admin  

     1 (blog2) F:Python项目log12>django-admin
     2 
     3 Type 'django-admin help <subcommand>' for help on a specific subcommand.
     4 
     5 Available subcommands:
     6 
     7 [django]
     8     check
     9     compilemessages
    10     createcachetable
    11     dbshell
    12     diffsettings
    13     dumpdata
    14     flush
    15     inspectdb
    16     loaddata
    17     makemessages
    18     makemigrations
    19     migrate
    20     runserver
    21     sendtestemail
    22     shell
    23     showmigrations
    24     sqlflush
    25     sqlmigrate
    26     sqlsequencereset
    27     squashmigrations
    28     startapp
    29     startproject
    30     test
    31     testserver
    32 Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are
    33 not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
    执行django-admin可选命令

        注意:没有特殊声明,所有的操作都在项目根目录下

    4、创建django项目

      $ django-admin startproject blog .    注意最后有一个点

      否则:会出现两层blog   

        

      正常:

        

       上面明亮就在当前项目的根目录中构建了Django项目的初始文件, 点  代表项目根目录

        重要文件说明:

        • manage.py 本项目管理的命令行工具,应用创建,数据库迁移等都使用它完成
        • blog/settings.py 本项目的配置文件,数据库参数等
        • blog/urls.py url路径映射配置,默认情况下,只配置了/admin的路由
        • blog/wsgi:定义WSGI接口信息,一般无需改动

    5、数据库配置

      使用数据库,需要修改默认的数据库配置

      在主项目的settings.py下的DATABASES, 默认使用的是sqllite,修改为mysql  

     1 DATABASES = {
     2     'default': {
     3         'ENGINE':'diango.db.backends.mysql',
     4         'NAME': 'blog',
     5         'USER':'root',
     6         'PASSWORD':'123456',
     7         'HOST':'192.168.112.110',
     8         'PORT':'3306'
     9     }
    10 }

      HSOT 数据库主机,缺省是空字符串,代表localhost, 若是“/” 开头表示使用Unix Socket 连接  

      OPTIONS 选项,字典,参考MySQL文档

      内建的引擎有:

      • 'diango.db.backends.postgresql'
      • 'diango.db.backends.msyql'
      • 'diango.db.backends.sqlite3'
      • 'diango.db.backends.oracle'

    6、MySQL数据库驱动  

      https://docs.djangoproject.com/en/2.0/ref/databases/

      Django 支持mysql 5.5 +

      Django 官方推荐使用本地驱动 mysqlclient 1.3.7 +

        $ pip install mysqlclient,( 但是报错)

          

        下载地址 ;https://www.lfd.uci.edu/~gohlke/pythonlibs/

    7、创建应用

      创建用户应用:$ python manage.py startapp user

      可能会报错,我是用的3.7版本,报错:

      

      解决办法:

      

      该应用完成 一下功能

        用户注册

        用户登录

      创建应用后,项目根目录下产生一个 user目录,有如下文件:

      

      

    8、注册应用

      在settings.py中增加user应用,目的是为了后台管理admin使用,或迁移migrate使用

      

    9、模型Model

      

      

      字段选项:注意 default不是创建数据库创建时的不填的初始值

      

      关系类型字段类:

      

      一对多时,自动创建会增加_id 后缀

      • 从一访问多,使用  对象.小写模型类_set
      • 从一访问一,使用  对象.小写模型类

      访问id   对象.属性_id

    10、创建User的Model类

      基类models.Model

      表名不指定默认使用<appname>_<model_name>  

     1 from django.db import models
     2 
     3 # Create your models here.
     4 
     5 class User(models.Model):
     6     class Meta:
     7         db_table = 'user'
     8     id = models.AutoField(primary_key=True)
     9     name = models.CharField(max_length=48, null=False)
    10     email = models.CharField(max_length=48,unique=True, null=False)
    11     password = models.CharField(max_length=128, null=False)
    12 
    13     def __repr__(self):
    14         return '<user{}{}'.format(self.id, self.name)

    11、迁移Migration

      迁移:从模型定义生成数据库的表

      1、生成迁移文件

      

      

        修改过Model类,还需要调用makemigrations ,然后migrate,迁移文件的序号会增加

        注意:迁移的应用必须在settings.py 的INSTALLED_APPS中注册

      2、执行迁移生成数据库的表

      

      

      

      执行了迁移,还同时生成了admin管理用的表

      查看数据库,user表创建好,字段设置正常

      

      如果修改 models.py 后,在迁移,会产生新的文件:

      

     12、Django 后台管理

      1、创建管理员

        

      2、本地化

        

      3、启动WEB Server  启动时可以指定端口

        

      4、登录后台管理

          

      5、注册应用模块

          在user应用的admin.py 添加

           

                

      user就可以在后台增生改查了

    13、路由

      路由功能就是实现URL模式匹配处理函数之间的映射

      路由配置要在项目的urls.py 中配置,也可以多级配置,在每一个应用中,建立一个urls.py文件配置路由映射

      url函数

      url( regex, view, kwargs=None, name=None ) 进行模式匹配

      regex:正则表达式,与之匹配的URL 会执行对应的第二个参数view

      view:用于执行与正则表达式匹配的URL

      kwargs:视图使用的字典类型的参数

      name:用来反向获取URL

      urls.py 内容如下:

          

        测试:

        

        

      url(r'index', index),# 127.0.0.1:8000/index 只能这样访问
      url(r'index/', index), # 127.0.0.1:8000/index/ 必须把 / 加上  
      url(r'index/$', index) # index  后面自动加 /

         常用属性打印:(默认是GET)

      

        打印二:(GET)

      

        请求信息测试 和JSON 响应:


      

        

        在项目中首页 多数使用HTML 显示,为了加载速度快,一般多使用静态页面。

        如果首页内容多,还有部分数据需要变化,将变化部分使用AJAX技术从后台获取数据

        本次,为了学习模板技术,只将首页采用Django的模板技术实现

     14、GET和POST 调试:

        使用Postman 工具调试

        GET      

        POST:

      

  • 相关阅读:
    volatile 关键字,你真的理解吗?
    kafka如何彻底删除topic及数据
    CentOS7 安装letsencrypt
    Qunar风控安全产品的探索之路
    乐观锁的实际应用
    前端打包报错内存溢出
    Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java11openjdkamd64/lib/libawt_xawt.so
    GitHud加速工具 devsidecar 安装
    linux系统命令行或shell里面设置终端title标题(适用与ubuntu,centos)[转]
    Sublime 搜索显示<binary>
  • 原文地址:https://www.cnblogs.com/JerryZao/p/10002165.html
Copyright © 2020-2023  润新知