django初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django初始化相关的知识,希望对你有一定的参考价值。

背景

中文网站:http://djangobook.py3k.cn/   建议看完1-8章

英文网站:https://docs.djangoproject.com/en/2.0/


框架

Django 紧紧地遵循这种 MVC 模式,可以称得上是一种 MVC 框架。以下是 Django 中 M、V 和 C 各自的含义:

  • M ,数据存取部分,由django数据库层处理,本章要讲述的内容。

  • V ,选择显示哪些数据要及怎样显示的部分,由视图和模板处理。

  • C ,根据用户输入委派视图的部分,由 Django 框架通过按照 URLconf 设置,对给定 URL 调用合适的 python 函数来自行处理。


    由于 C 由框架自行处理,而 Django 里更关注的是模型(Model)、模板(Template)和视图(Views),Django 也被称为 MTV 框架 。在 MTV 开发模式中:

    • M 代表模型(Model),即数据存取层。该层处理与数据相关的所有事务:如何存取、如何确认有效性、包含哪些行为以及数据之间的关系等。

    • T 代表模板(Template),即表现层。该层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。

    • V代表View,业务逻辑层。这一层包含访问模型的逻辑和按照模板显示。你可以认为它是模型和模板的桥梁。


    一、Django安装

    3种方式:

    pip isntall django==版本号    #推荐

    easy_install django              #easy_install

    python setup.py install         #源码

    源码下载

    https://pypi.python.org/pypi/Django

    技术分享图片

    技术分享图片


    安装步骤:

    pip install django==1.6.5

    pip list

    import django

    print(django.get_version()) 




    二、 创建项目

    1.创建项目

    命令:django-admin.py  startproject web    #生成子目录文件

    [[email protected] web]# tree /root/python/web/

    /root/python/web/

    ├── manage.py

    └── web

    ├── __init__.py

    ├── settings.py

    ├── urls.py

    └── wsgi.py


    项目文件说明:

    __init__.py: 定义一个模块,供import导入调用

    setting.py: 配置文件

    urls.py:        视图配置文件,相当于MVC的V

    wsgi.py:      一般用于结合apache或者nginx


    2.修改setting.py配置文件的时区和语言

    技术分享图片技术分享图片


    3.启动django

    命令 python manage.py runserver 0.0.0.0:8000


    4.web访问

    说明:只有工程,没有应用的页面

    技术分享图片技术分享图片



    三、添加应用

    1.启动一个应用

    两种方法:

    python manage.py startapp blog    #管理脚本的形式

    django-admin.py startapp blog       #添加项目的形式

    技术分享图片技术分享图片


    应用文件说明:

    models.py:相当于MVC模式的M,定义数据模型

    views.oy:   相当于MVC中的V,视图模板

    test.py:      测试用

    admin.py:  管理用


    2.web项目目录下setting.py中,添加应用blog

    技术分享图片技术分享图片


    3.urls.py(属于MVC模型中的C)文件,添加url,并引用index函数

    技术分享图片技术分享图片


    4.在blog应用目录下,views.py模块中定义index函数

    说明:先导入django内置模块;定义的函数必须带参数(请求),有请求(参数名可自定义)就有返回,返回字符串前,先用httpResponse内置函数处理

    技术分享图片技术分享图片



    5.WEB访问

    技术分享图片技术分享图片


    其中自定义的返回:

    技术分享图片技术分享图片


    6.自定义web模板目录

    说明:在应用blog目录下,创建一个templates目录,目录名固定写死,用于存放web网页文件,定义index.html

    技术分享图片技术分享图片


    7.导入web模板

    应用blog目录下,views.py文件,先导入模块

    说明:t是一个对象,自动从template目录下加载文件;c也是一个对象,上下文Context,替换index.html里面的标记或者变量,因为写的index.html中没有这些,所有暂时定义为空;t的一个方法,渲染c,最后返回;凡是返回到页面上的,都要通过HttpResponse()

    技术分享图片技术分享图片


    8.关闭进程,再次启动,查看网页

    命令 python manage.py runserver 0.0.0.0:8000

    技术分享图片技术分享图片





    四、定义数据模型

    MVC中的V就是应用下的views.py和templates,C就是项目下的urls.py文件

    MVC模型中的M是应用blog下的modles.py文件,专门定义数据库


    1.应用目录blog下,modles.py文件定义数据表

    说明:数据类型定义方式,在官网中有说明,如ip地址类型:https://docs.djangoproject.com/en/dev/

    class Host(models.Model):

    hostname = models.CharField(max_length=50)

    ip = models.IPAddressField()

    技术分享图片技术分享图片


    2.检查模型的语法或者逻辑是否有错误

    python manage.py validate

    技术分享图片技术分享图片


    3.初始化数据库

    1)在项目目录下的setting文件中,可以看到默认数据库为sqllite3,数据库目录在BASE_DIR这层目录,数据库文件名为db.sqlite3

    技术分享图片技术分享图片

    取两层路径,表示当前脚本上一层目录

    技术分享图片技术分享图片


    2)查看系统是否安装sqlite3数据库,没有则yum安装

    技术分享图片技术分享图片


    2.1)进入dbshell,熟悉sqlite3

    .help     #帮助

    .tables  #查看表

    .exit      #退出

    技术分享图片技术分享图片


    2.2)每次执行登录之后,会自动生成一个db.split3文件,也可以删掉

    技术分享图片技术分享图片


    2.3)或者这样进入

    技术分享图片技术分享图片


    2.4)查看数据表,其中id为自动生成

    技术分享图片技术分享图片


    3)同步数据库

    命令 python manage.py syncdb

    说明:会自动生成一些自带的表,以及认证

    技术分享图片技术分享图片


    3.1)初始化之后,查看表

    说明:语法和mysql基本相似

    技术分享图片技术分享图片


    4)管理数据,将数据库数据显示在admin页面

    修改应用blog下的admin.py文件

    说明:先导入表,然后定义一个类,参数为admin模块,继承ModelAdmin方法;列表写表中的字段;注册host表和管理表

    class HostAdmin(admin.ModelAdmin):

    list_display = ["hostname","ip"]

    admin.site.register(Host,HostAdmin)

    技术分享图片技术分享图片


    5)web查看,并添加数据

    技术分享图片技术分享图片


    6)数据库上查看添加的数据

    技术分享图片技术分享图片


    以上是关于django初始化的主要内容,如果未能解决你的问题,请参考以下文章

    django初始化

    Django 初始化数据库

    django - 初始化模型字段,包括manytomanyfields

    用django2.0来开发 环境部署和初始化项目

    Django数据初始化方法

    django环境初始化