记一次:Python的学习笔记二(Django项目1)

前言:书接上回,认识了Python项目环境,那么开始做一些案例了,笔者是Java出身,接触的也大都是web项目,那么Python的web项目有哪些呢?了解了一下有很多,37个之多,有 Django 框架 Flask 框架Pyramid 框架web.py 框架 Tornado 框架TurboGears 框架...各种各样吧。所以学习的话也是推荐排名靠前的,各个框架的优缺点不做展开讲解

目录总结图

记一次:Python的学习笔记二(Django项目1)_第1张图片

1.安装django

安装django可以在两种环境安装,前文已经说过,可以在全局环境下安装,也可以在激活的虚拟环境下安装。 

pip install django

安装之后查看环境目录

c:\python
	- python.exe
	- Scripts
		- pip.exe
		- django-admin.exe   【工具,创建django项目中的文件和文件夹】
	- Lib
		- 内置模块
		- site-packages
			- openpyxl
			- python-docx
			- flask
			- django         【框架的源码】

2.创建项目

django中项目会有一些默认的文件和默认的文件夹。

2.1 在终端

打开终端。激活虚拟环境,进入到myenv目录下的Scripts文件夹,输入activate即可

使用django-admin命令创建项目

django-admin startproject HelloWorld

2.2 Pycharm

使用IDE创建也是可以的,根据工具进行创建

特殊说明:

命令行,创建的项目是标准的。

3、项目介绍

使用 django-admin 来创建 HelloWorld 项目:

django-admin startproject HelloWorld

创建完成后我们可以查看下项目的目录结构:

默认项目的文件介绍:
HelloWorld
├── manage.py         【项目的管理,启动项目、创建app、数据管理】【不要动】【***常常用***】
└── HelloWorld
    ├── __init__.py
    ├── settings.py    【项目配置】           【***常常修改***】
    ├── urls.py        【URL和函数的对应关系】【***常常修改***】
    ├── asgi.py        【接收网络请求】【不要动】
    └── wsgi.py        【接收网络请求】【不要动】

记一次:Python的学习笔记二(Django项目1)_第2张图片

目录说明:

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。

各文件和目录解释:

外层的HelloWorld/目录与Django无关,只是你项目的容器,可以任意重命名。

manage.py:一个命令行工具,管理Django的交互脚本。

内层的HelloWorld/目录是真正的项目文件包裹目录,它的名字是你引用内部文件的Python包名,例如:HelloWorld.urls。

HelloWorld/init.py:一个定义包的空文件。

HelloWorld/settings.py:项目的配置文件。非常重要!

HelloWorld/urls.py:路由文件,所有的任务都是从这里开始分配,相当于Django驱动站点的目录。非常重要!

HelloWorld/wsgi.py:一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。

HelloWorld/asgi.py:一个基于ASGI的web服务器进入点,提供异步的网络通信功能,通常不用关心。

4、启动服务

回到项目根目录下HelloWorld 运行

python manage.py runserver

Django会以127.0.0.1:8000这个默认配置启动开发服务器。如果你想指定端口,请在命令中显示给出:python manage.py runserver 8080

如果想修改服务器的ip地址,请按下面的方式运行命令:python manage.py runserver 0:8000

0 是 0.0.0.0 的简写,Django将运行在0.0.0.0:8000上,整个局域网内都将可以访问站点,而不只是是本机(这其中可能还需要做一些配置和网络测试)

记一次:Python的学习笔记二(Django项目1)_第3张图片

访问地址会有什么?

记一次:Python的学习笔记二(Django项目1)_第4张图片

5、创建应用(app

创建应用,在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定,app的存放位置可以是任何地点,但是通常都将它们放在与manage.py脚本同级的目录下,这样方便导入文件。

5.1、创建应用

进入HelloWorld 项目根目录,确保与manage.py文件处于同一级,输入下述命令:

python manage.py  startapp  booktest 或者 django-admin startapp myapp

生成的目录结构如下

记一次:Python的学习笔记二(Django项目1)_第5张图片

│   admin.py   [固定,不用动]  django默认提供了admin后台管理
│   apps.py    [固定,不用动] app启动类
│   models.py  【*** 重要 ****】对数据库操作
│   tests.py    [固定,不用动] 单元测试
│   views.py   【*** 重要 ****】 函数
│   __init__.py
└───migrations  [固定,不用动] 数据库变更记录
    __init__.py

5.2 在settings.py 里面配置信息注册子应用

如果想要把应用在这个项目中跑起来需要将应用添加到项目中,

记一次:Python的学习笔记二(Django项目1)_第6张图片

注意:

记一次:Python的学习笔记二(Django项目1)_第7张图片

还是这个文件,再找到 TEMPLATES项,添加DIRS 

记一次:Python的学习笔记二(Django项目1)_第8张图片

5.3模型类models.py

from django.db import models
 
# Create your models here.
class BlogPost(models.Model):
    title = models.CharField(max_length=150) #博客的标题
    body = models.TextField()    #博客正文
    timestamp = models.DateTimeField() #博客创建时间

5.4设置数据库

如果使用默认的SQlite:

打开HelloWorld 目录下的settings.py文件,找到DATABASES元组,如下图所示,默认使用SQlite。

记一次:Python的学习笔记二(Django项目1)_第9张图片

如果使用MySQL数据库:

更改mypro目录下的settings.py文件,找到DATABASES元组,改为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',   #改为MySQL数据库
        'NAME': 'mydb',                         #数据库名称
        'USER': 'root',                         #数据库用户名
        'PASSWORD': '123abc',                   #数据库用户密码
        'HOST': '127.0.0.1',                    #主机地址
        'PORT': '3306',                         #端口号
    }
}

在Django中使用MySQL数据库之前,要先确保已经建立了数据库mydb,并且上图使用的用户名和密码是已经存在的。

记一次:Python的学习笔记二(Django项目1)_第10张图片

还需在项目mypro中的_init_.py文件做修改,

记一次:Python的学习笔记二(Django项目1)_第11张图片

先下载模块pymysql,命令为:

pip install pymysql

记一次:Python的学习笔记二(Django项目1)_第12张图片

5.5 创建数据库表,生成编辑文件

首先创建数据库表,生成编辑文件(根据模型类生成编译文件)命令如下:

 python manage.py makemigrations

5.6 迁移实际生成表

根据编译文件去创建数据库去生成表)然后执行迁移,命令如下:

python manage.py migrate

记一次:Python的学习笔记二(Django项目1)_第13张图片

5.7使用Navicat查看数据库

这里生成的表,有系统自带的,还有我们自己创建的,自己去找

Python默认的数据库sqlite3就创建出来了

使用Navicat连接查看

记一次:Python的学习笔记二(Django项目1)_第14张图片

如果连接的是mysql则迁移之后在mysql库中也创建了表

记一次:Python的学习笔记二(Django项目1)_第15张图片

5.8 管理界面本地化

此处改为中国化(亚洲/上海时区)打开helloworld项目下的settings.py文件,找到如下设置

修改以下两项:

LANGUAGE_CODE = 'zh-Hans'

TIME_ZONE = 'Asia/Shanghai'

记一次:Python的学习笔记二(Django项目1)_第16张图片

5.9 创建超级用户admin

在Terminal命令行输入:

python manage.py createsuperuser

记一次:Python的学习笔记二(Django项目1)_第17张图片

按照提示一步步输入即可,密码过于简单的会进行提示。

5.10 使用admin

admin为自动后台管理,再次打开settings.py文件,找到INSTALLED_APPS这个元组,观察其第一行的‘django.contirb.admin'是否被注释(旧版好像会被注释,需要自己去掉注释,新版不会)。

记一次:Python的学习笔记二(Django项目1)_第18张图片

确认admin设置正确后,需要添加在admin页面显示的模型,即注册BlogPost。打开booktest下的admin,py文件

添加以下代码,这样admin就可以管理已经注册的对象:

from django.contrib import admin    #导入admin
from booktest import models           #导入数据模型
 
admin.site.register(models.BlogPost)  #使用admin注册BlogPost类

记一次:Python的学习笔记二(Django项目1)_第19张图片

6、启动应用服务

python manage.py runserver

记一次:Python的学习笔记二(Django项目1)_第20张图片

打开浏览器,输入链接:http://127.0.0.1:8000/admin

注意:此时链接地址稍有改变,需要进入admin。

记一次:Python的学习笔记二(Django项目1)_第21张图片

记一次:Python的学习笔记二(Django项目1)_第22张图片

注意,如果你的blog界面此时没有添加的类,可能的问题为:1.没有在settings.py的INSTALLED_APPS中添加应用。2.应用的models.py中有错误 。3.没有在admin.py中进行模型注册。

然后可以进行其它操作了

 下一篇分享Django模板使用笔记呢还是Django集成Redis笔记呢?留个悬念哈哈哈

你可能感兴趣的:(python,学习,笔记)