项目环境搭建

1.基本认知

Web应用框架(Web application framework)是一种开发框架,用来支持动态网站,网络应用程序及网络服务的开发。—— Django 框架: WSGI:Web Server Gateway Interface。服务器网关接口 web框架构成: url路由 请求对象 响应对象 模板引擎 数据库模型对象 django 全能型web框架 web.py flask.py tornado 异步加载 Twisted

Django是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站!

 

http服务器:用来接受用户请求,并将请求转发给web应用框架进行处理

Web应用框架处理完以后再发送给http服务器,http服务器再返回给用户

 

web应用框架的设计模式: MTV 和 MVC

django设计模式是MTV

     Mmodels    模型:负责业务数据对象与数据库对象
  T: templates 模板:负责如何把数据展示给用户
  Vviews 视图:负责业务逻辑
 
  Mmodels 模型:负责业务数据对象与数据库对象
  Vviews 视图 负责与用户交互的页面
  Ccontroller 控制器 接受用户的输入调用模型与视图(类似我们的views)

 

解耦(将一个复杂的流程分工为多个简单的流程。) 耦合是一个宽泛的概念。两个程序模块有关联就叫做耦合。

""" 模块只对外暴露最小限度的接口,形成最低的依赖关系。 只要对外接口不变,模块内部的修改,就不得影响其他模块; 删除一个模块,应当只影响有依赖关系的其他模块,而不应该影响其他无关部分; 软件工程有一条铁律 “高内聚、低耦合” 就是这个道理: 必要的耦合不可否认,没有耦合程序就做不成事; 但是不必要的紧耦合,就会让程序“牵一发而动全身”, 最终让程序员的编写和维护都无从下手。 """

 

2.工具准备

linux (ubuntu) python3↑ pycharm mysql 5.7↑

python3:virtualenv,django,pymysql/mysqlclient

常用命令

 查看当前虚拟环境:  workon
 
 退出虚拟环境: deactivate
 
 查看进程: ps -aux|grep python
 
 创建虚拟环境(退出之前环境): mkvirtualenv -p /usr/bin/python3 env_name # 其实就是复制一份环境
 
 进入虚拟环境: workon envname
 
 删除虚拟环境: rmvirtualenv envname
 
 安装django : pip install django[==2.1.0 指定版本]
 
 查看安装的django版本: python -m django --version
 
 在虚拟环境中安装pymysql: pip install pymysql -i https://pypi.doubanio.com/simple
 
 查看django的命令介绍: django-admin
 
 创建项目: django-admin startproject project_name
 
 运行服务: python manage.py runserver [ 0.0.0.0:8000 ]
 
 创建APP: python manage.py startapp app_name
 
 查看管理器的命令: python manage.py
 
 pycharm中创建:
 
 1. Tools:Run manage.py Task
 2. startapp app_name
 
  127.0.0.1 代表本地回环地址(固定ip) # 可以用 ifconfig命令查看
  0.0.0.0   代表任何主机都可以访问
  0:8000 0.0.0.0:8000的简写; 8000为端口号
 端口总共:65536(即2**16) 0-65535
  其中1—1024端口有特殊作用;
 
 该命令显示当前设置文件和Django默认设置之间的差异。
 python manage.py diffsettings

 

环境搭建

1.创建虚拟环境

 (py3env) pyvip@Vip:~$ workon
 envpy2
 py3env
 pydjtest
 (py3env) pyvip@Vip:~$ mkvirtualenv -p /usr/bin/python3 dj2env
 
 (dj2env) pyvip@Vip:~$ pip install django==2.1.10 -i https://pypi.doubanio.com/simple

 

2.新建项目

 # 新建一个文件夹用于存放项目,并进入该文件夹
 ~$ mkdir projects
 ~/projects$ django-admin startproject hello_django1

 

3.Django目录及文件说明

 ~/projects$ tree
 
 ├── hello_django
 │   ├── __init__.py
 │   ├── settings.py
 │   ├── urls.py
 │   └── wsgi.py
 └── manage.py
 
 manage.py django中的一个命令行工具,管理django项目
 __init__.py 空文件,告诉python这个目录是python包
 setting.py 配置文件,包含数据库信息,调试标志,静态文件等。
 urls.py Django项目的URL声明, 就像你网站的“目录”
 wsgi.py 作为你的项目的运行在 WSGI 兼容的Web服务器上的入口 后期部署到服务器时使用

 

4.Pycharm搭建环境及代码同步

4.1新建项目

4.2设置代码同步

Tools ==> Deployment ==> Configuration

Tools ==> Deployment ==> Options

 

 

同步远程主机的项目文件到本地

4.3配置django

添加 Django 服务

Fix会跳转到如下设置, 其实就是Settings ==> Language ==> Django

 

5.运行服务器

因为我们用的是linux上面的环境,所以为了让我们在windows的浏览器上能访问到我们的服务器,那么需要修改setting.py的文件,将里面的ALLOWED_HOSTS = [] 改成ALLOWED_HOSTS = ['*'],这样才能使我们在本地能访问到我们linux上面的服务器。

linux虚拟机网络连接方式是nat端口转发时,需要设置http服务8000端口的转发:

将配置文件和端口都设置好后就可以去运行我们的服务,开服务开启.

开启服务的命令: python manage.py runserver 0.0.0.0:8000

pycharm中有两种方式可以开启服务.

1.在pycharm中的配置,在运行服务器配置的页面改成0.0.0.0的host ,然后保存运行.

 

2.在Tool工具,点击Run manage.py Task... ,这样就能打开项目的manage管理器,然后在下面输入运行服务器的命令runserver 0.0.0.0:8000

 

当服务启动后,我们打开浏览器输入ip:端口回车就能看到It workd!的页面,这就说明我们已经访问到了我们linux上面的django开发服务器了。

 

注意: 从这些开启的方式中选择一种方便的去开启服务就可以了,不要重复操作, 重复操作端口就会被占用.

6.创建视图函数

在项目目录下创建views.py视图函数

 # hello_django/views.py
 from django.http import HttpResponse
 
 def index(request):
     return HttpResponse('hello django!')

定义试图函数相关的URL(hello_django/urls.py)

 # hello_django/urls.py
 from django.conf.urls import url
 from django.contrib import admin
 from . import views
 urlpatterns = [
     url(r'^admin/', admin.site.urls),
     url(r'^hello/', views.index),
 ]

 

7.新建应用(app)

一个项目可以包含多个应用,下面是创建应用的命令:

 # 在项目根目录下运行命令
 ~/netshop$ python manage.py startapp movie

 

在pycharm中打开项目的manage管理器, 然后输入创建应用的命令startapp appname

 

audio和video 音频标签和视频文件标签

mysql:admin 、root 密码: Root110qwe 、qwe123

Django 管理

# 创建admin后台管理用户:
python manage.py createsuperuser

mysite project: 用户: admin 密码:wz926493 邮箱:1432294852@qq.com

demo_django project 用户:admin 密码:ww123456 邮箱:1432294852@qq.com