Django
前言
当前环境: Ubuntu18 + Python3.6.5 + Django2.1.1
Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.
这一节, 我们的目标是安装和成功运行一个Django项目.
Django-Getting Start
Django-安装
安装: pip3 install Django
提示: 如果下载速度慢, 可查看速度解决.
Django-项目
创建并进入项目工作区:
unbuntu@ubtLO:~$ mkdir work_django/test_one
unbuntu@ubtLO:~$ cd work_django/test_one
unbuntu@ubtLO:~/work_django/test_one$
创建Django项目:
# django-admin startproject "项目名"
unbuntu@ubtLO:~/work_django/test_one$ django-admin startproject mysite
# 进入"mysite"目录, 并创建应用(Web application).
# python3 manage.py startapp "应用名"
unbuntu@ubtLO:~/work_django/test_one/mysite$ python3 manage.py startapp scetc
# 要运行Django Server需要给定允许运行的IP地址.
# ifconfig 查看本地IP地址为: 192.168.75.128
# 然后进入./mysite/mysite/settings.py中修改允许的IP地址.
unbuntu@ubtLO:~/work_django/test_one/mysite$ vim mysite/settings.py
找到并修改为:
启动Django项目:
# 让Server运行在192.168.75.128:8000上.
# 这里也可以用Shell写成脚本或者用Python的os写成脚本运行.
# 这里的写Server只能在同网段下访问.
unbuntu@ubtLO:~/work_django/test_one/mysite$ python3 manage.py runserver 192.168.75.128:8000
Python启动Django Server脚本pys_st.py:
#!/usr/bin/env python3
import os
os.system("python3 manage.py runserver 192.168.75.128:8000")
使用Python启动Server:
unbuntu@ubtLO:~/work_django/test_one/mysite$ chmod 744 pys_st.py
unbuntu@ubtLO:~/work_django/test_one/mysite$ ./pys_st.py
在Browser中访问http://192.168.75.128:8000
Django-Project Tree
Tree:
- manage.py: 管理的比较多, 如 创建app, 启动服务器等都与此相关.
- mysite: 项目的Python包.
- settings.py: 该Django项目的设置/配置.
- urls.py: 该Django项目的URL声明, 站点的"目录".
- wsgi.py: 用于项目与WSGI兼容的Web Server入口.
- sctec: 应用.
Django-Exception
(1) 在运行Django Server时出现unapplied migration(s)
:
# 输入"python3 manage.py migrate".
unbuntu@ubtLO:~/work_django/test_one/mysite$ python3 manage.py migrate
(2) 在配置好后, 无错误下出现无法访问http://192.168.75.128:8000
.
# 可能是ubuntu中ufw没有关闭, 或者ufw没有允许Server运行的端口是可以被外部访问的.
# 所以有 2 个解决方法.
# 1.关闭ufw.
unbuntu@ubtLO:~/work_django/test_one/mysite$ sudo ufw disable
# 2.允许Server运行的端口.
unbuntu@ubtLO:~/work_django/test_one/mysite$ sudo ufw allow 8000