测试开发之创建你的第一个Django项目(一)

2022-06-30 18:54:09 浏览数 (1)

测试开发之创建你的第一个Django项目(一)

一.代码仓库同步

1.目的

为了使得代码管理更加方便,如果你不打算同步的话,可以直接跳到第二大步——创建django项目

其次,你也可以使用github、svn等代码仓库管理你的代码,这里选用gitee是方便无访问国外网站,微信端可以随时通过gitee查看代码笔记的我这种懒人。

2.gitee创建仓库

gitee账号创建这种事各位大佬想必都是信手拈来,这里就不做赘述。

①.登录gitee

②.创建仓库

③.填写对应的相关信息,点击创建

④.创建好了之后的页面如下,可以添加一个初始化文件,跟着提示的命令进行操作即可

3.将仓库clone到本地

以windows操作系统为列

①.安装git

②.在本地需要构建仓库的地方右键选择git bash here

③.复制在gitee构建的仓库的https地址

④.输入

git clone 你的仓库https地址

⑤.完成(文件夹尽量不要出现中文和空格)

⑥.之后即可在本地同步代码到gitee仓库,同时可以在别的电脑同步代码,后续细讲

⑦.常用命令

git clone #克隆项目 git add ./ #添加 git commit -m "提交描述" git push origin master

二.创建django项目

django是一个高级的python web框架

1.创建虚拟环境

实际开发过程中每一个项目都会单独的创建一个python的虚拟环境。

本质上python的虚拟环境是对系统python环境的一个拷贝,依赖系统环境,又和系统环境隔离。

virtualenv

安装:

pip install virtualenv

创建虚拟环境

virtualenv <环境名称>

会在当前目录下创建一个python的虚拟环境

可以通过-p参数指定要虚拟的python解释器

使用pycharm创建

注意:必须要专业版,社区版有些功能被阉割了

①.在pycharm中打开这个项目

②.File -> settings -> project -> Python interpreter -> show all -> 左下角加号添加

③.我个人习惯,喜欢专门创建一个文件夹存放我的虚拟环境(该文件夹无中文和空格符号,否则容易导致项目报错,你还找不到原因),勾选一个基本的解释器就行。

④.等待创建成功

⑤.创建好了之后,你就得到了一个干净的虚拟环境了,点击apply应用这个虚拟环境

⑥.关于配置pip全局镜像,请查看往期内容,关键字搜索,pip配置全局镜像

2.虚拟环境的使用

使用Terminal

在pycahrm中使用Terminal等效于windows的cmd,mac的终端

我为什么使用Terminal

①.由于我使用的是虚拟环境,我通过pycharm打开该项目,在Terminal我可以直接进入该项目的虚拟环境

如图所示,前面括号里面的便是虚拟环境名称

②.方便管理,一个项目对应一套环境,在实际工作中可以避免环境的冲突

③.如果是用windows或者mac自带的,那么你直接在项目根目录下使用pip,他会直接引用你环境变量中配置的第一个python环境,而不是你当前的项目的虚拟环境,除非你把虚拟环境配置到环境变量并且是第一个(使用命令where python 或 where pip查看你电脑拥有的环境变量)

④.在Terminal进行pip下载,下载的site-package直接就在你虚拟环境里面

3.django下载

两个等于号,前后不能有空格

pip install django==2.2

看到这句就是下载成功了

4.创建django项目

①.依然在Terminal中,确认一下是在项目根目录下

②.创建django项目(项目名自己取,我取的是XZAndroidPlatform)

django-admin startproject <project_name>

③.进入创建的这个项目里面,创建app(app名字自己取,我的是xiaozai_app)

django-admin startapp xiaozai_app

④.启动项目

python manage.py runserver

⑤.点击该网址,看到如下页面,恭喜你成功创建自己第一个django项目

5.重新打开django项目

pycharm重新打开XZAndroidPlatfor

①.pycharm一键启动django项目

重新打开项目之后,可以看到pycharm上方有如下按钮(社区版没有),点击绿色按钮即可启动django项目

如果出现红叉,请点开编辑,选择前面创建的虚拟环境路径即可

我的配置如下

注:如果勾选了Run browse,那你每次启动django服务的时候都会自动给你打开浏览器进入django项目下。

②.修改端口

修改上图的post,因为8000端口很容易被平常其他的项目占用,我们可以改为其他的不常用的端口,如8088,8099等

我的改为了8088端口

③.认识各个文件

XZAndroidPlatform 文件夹 - > 项目文件夹

-- xiaozai_app 文件夹 -> 注册的app

--- migrations文件夹 -> 迁移记录

--- admin.py : 把数据库的具体表注册到后台,便于管理(后台管理)

--- apps.py : 当前应用配置信息的入口

--- models.py : 数据模型模块

--- tests.py : 单元测试

--- views.py : 视图,写实际后端代码

-- XZAndroidPlatform 文件夹 -> django的项目目录

--- settings.py:相关设置及配置

--- urls.py :项目的跟路由,连接url和后端的桥梁

--- wsgi.py :兼容wsgi协议的web服务器入口

-- db.sqlite3 :django自带的一个小型数据库文件,而且是数据库本体,一般小项目可以直接使用

-- manage.py :项目管理命令行工具

④.Django的常用命令

任务

命令

创建新项目

django-admin.py startproject project_name (注意: windows系统下请用django-admin startproject xxx)

创建新应用

python manage.py startapp app_name (注意: 你需要先cd进入创建的项目文件夹)

检测模型变化,生成新的数据库迁移文件

python manage.py makemigrations [app_label] (注意: app名字可选。如果一个项目包含多个app,而你只更改了其中一个app的模型,建议后面加入具体的app名)

同步数据库与模型

python manage.py migrate

启动服务器

python manage.py runserver

创建超级用户

python manage.py createsuperuser

修改用户密码

python manage.py changepassword username

打开交互终端

python manage.py shell python manage.py dbshell(数据库交互)

查看当前版本

python manage.py version

django-admin.py和manage.py其它命令

命令

用途

python manage.py flush

清空数据库内容,只留下空表

python manage.py test

开始测试

python manage.py collectstatic

搜集静态文件

python manage.py createcachetable

创建缓存表

python manage.py check

检测项目有没有问题

python manage.py inspectdb [table]

根据已有数据库反向生成django模型。你可以选择数据表名字

python manage.py makemessages

搜集所有的messages,可以生成指定文件格式如xml文件,供后期翻译

python manage.py sendemail [email]

发送测试邮件

python manage.py showmigrations

显示所有数据库迁移文件

三.初始化项目操作

①. admin.py自动注册

admin.py里写成如下这样,自动注册(原作者:测试开发干货——我去热饭)

代码语言:javascript复制
from django.contrib import admin
# Register your models here.

import inspect,sys
from .models import *

cls_members = inspect.getmembers(sys.modules[__name__],inspect.isclass)
for name,cls in cls_members:
    admin.site.register(cls)

②.settings.py文件添加配置

(1)修改时区和语言

代码语言:javascript复制
LANGUAGE_CODE = 'zh-hans'     # 改中文

TIME_ZONE = 'Asia/Shanghai'   # 改时区

修改之后启动项目界面变成了中文

(2)安装应用

在settings文件的INSTALLED_APPS中去注册。

新增xiaozai_app

代码语言:javascript复制
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'xiaozai_app'
]

(3)增加可访问权限

代码语言:javascript复制
ALLOWED_HOSTS = ['*']  #让其他人都能访问本平台

一般情况都是填写允许的访问IP,这里我填写的是允许所有

(4)解决跨域问题

跨域资源共享。

浏览器默认是不允许跨域发送ajax。

我们当前项目需要允许跨域。

跨域如何实现?

通过请求头,需要浏览器和服务器同时支持。

整个cors通信过程,都是浏览器自动完成的,不需要用户参与。

1.先pip install django-cors-headers

2.把中间件修改成如下配置

注意:设置的时候要设置到所有的返回响应的中间件的最上面

代码语言:javascript复制
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'corsheaders.middleware.CorsMiddleware', #第三方解决跨域头问题的中间件
    'django.middleware.common.CommonMiddleware',
    # 'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
CORS_ORIGIN_ALLOW_ALL = True #加上允许所有跨域

如果只想运行某几个IP跨域,则书写如下:

代码语言:javascript复制
# CORS设置
# 允许跨域的域名列表
CORS_ALLOWED_ORIGINS = [
    'http://localhost:8080',
    'http://127.0.0.1:8080'
]

(5)创建超级管理员

python3 manage.py createsuperuser

3.配置成所有人都可以进行访问的地址

①port处为空

②Additional options 写为 0.0.0.0:8000

③勾选Run browser并填写相关内容(可以不勾,填在Host那里也可以)

到此,一个django项目的创建终末就结束了。

0 人点赞