项目环境搭建
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
M:models 模型: 负责业务数据对象与数据库对象
• T: templates 模板: 负责如何把数据展示给用户
• V:views 视图: 负责业务逻辑
?
• M:models 模型: 负责业务数据对象与数据库对象
• V:views 视图 负责与用户交互的页面
• C:controller 控制器 接受用户的输入调用模型与视图(类似我们的 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) [email protected]:~$ workon
- envpy2
- py3env
- pydjtest
- (py3env) [email protected]:~$ mkvirtualenv -p /usr/bin/python3 dj2env
- ?
- (dj2env) [email protected]:~$ 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 邮箱:[email protected]
demo_django project 用户: admin 密码: ww123456 邮箱:[email protected]
来源: http://www.bubuko.com/infodetail-3344686.html