前言:书接上回,认识了Python项目环境,那么开始做一些案例了,笔者是Java出身,接触的也大都是web项目,那么Python的web项目有哪些呢?了解了一下有很多,37个之多,有 Django 框架 Flask 框架Pyramid 框架web.py 框架 Tornado 框架TurboGears 框架...各种各样吧。所以学习的话也是推荐排名靠前的,各个框架的优缺点不做展开讲解
目录总结图
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 【接收网络请求】【不要动】
目录说明:
- 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上,整个局域网内都将可以访问站点,而不只是是本机(这其中可能还需要做一些配置和网络测试)
访问地址会有什么?
5、创建应用(app)
创建应用,在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定,app的存放位置可以是任何地点,但是通常都将它们放在与manage.py脚本同级的目录下,这样方便导入文件。
5.1、创建应用
进入HelloWorld 项目根目录,确保与manage.py文件处于同一级,输入下述命令:
python manage.py startapp booktest 或者 django-admin startapp myapp
生成的目录结构如下
│ admin.py [固定,不用动] django默认提供了admin后台管理
│ apps.py [固定,不用动] app启动类
│ models.py 【*** 重要 ****】对数据库操作
│ tests.py [固定,不用动] 单元测试
│ views.py 【*** 重要 ****】 函数
│ __init__.py
└───migrations [固定,不用动] 数据库变更记录__init__.py
5.2 在settings.py 里面配置信息注册子应用
如果想要把应用在这个项目中跑起来需要将应用添加到项目中,
注意:
还是这个文件,再找到 TEMPLATES项,添加DIRS
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。
如果使用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,并且上图使用的用户名和密码是已经存在的。
还需在项目mypro中的_init_.py文件做修改,
先下载模块pymysql,命令为:
pip install pymysql
5.5 创建数据库表,生成编辑文件
首先创建数据库表,生成编辑文件(根据模型类生成编译文件)命令如下:
python manage.py makemigrations
5.6 迁移(实际生成表)
根据编译文件去创建数据库去生成表)然后执行迁移,命令如下:
python manage.py migrate
5.7使用Navicat查看数据库
这里生成的表,有系统自带的,还有我们自己创建的,自己去找
Python默认的数据库sqlite3就创建出来了
使用Navicat连接查看
如果连接的是mysql则迁移之后在mysql库中也创建了表
5.8 管理界面本地化
此处改为中国化(亚洲/上海时区)打开helloworld项目下的settings.py文件,找到如下设置
修改以下两项:
LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
5.9 创建超级用户admin
在Terminal命令行输入:
python manage.py createsuperuser
按照提示一步步输入即可,密码过于简单的会进行提示。
5.10 使用admin
admin为自动后台管理,再次打开settings.py文件,找到INSTALLED_APPS这个元组,观察其第一行的‘django.contirb.admin'是否被注释(旧版好像会被注释,需要自己去掉注释,新版不会)。
确认admin设置正确后,需要添加在admin页面显示的模型,即注册BlogPost。打开booktest下的admin,py文件
添加以下代码,这样admin就可以管理已经注册的对象:
from django.contrib import admin #导入admin
from booktest import models #导入数据模型admin.site.register(models.BlogPost) #使用admin注册BlogPost类
6、启动应用服务器
python manage.py runserver
打开浏览器,输入链接:http://127.0.0.1:8000/admin
注意:此时链接地址稍有改变,需要进入admin。
注意,如果你的blog界面此时没有添加的类,可能的问题为:1.没有在settings.py的INSTALLED_APPS中添加应用。2.应用的models.py中有错误 。3.没有在admin.py中进行模型注册。
然后可以进行其它操作了
下一篇分享Django模板使用笔记呢还是Django集成Redis笔记呢?留个悬念哈哈哈