Django操作流程
一、和我一起做Helloworld
创建虚拟环境
virtualenv 隔离多个项目之间的环境
pyenv 管理Python的多个版本
pip install virtualenv
virtualenv venv --python=python3
virtualenv venv --python=python3
激活环境
source venv/bin/activate
# 显示环境下已安装的包
pip freeze
pip list
Package Version
---------- -------
pip 10.0.1
setuptools 39.0.1
wheel 0.31.0
# 显示环境下已安装的包
pip freeze
pip list
Package Version
---------- -------
pip 10.0.1
setuptools 39.0.1
wheel 0.31.0
安装Django 1.11
pip install django==1.11
pip install django==1.11
创建项目
django-admin startproject helloworld
django-admin startproject helloworld
运行
cd helloworld
python manage.py runserver
# python manage.py runserver 0.0.0.0:8888
# sudo ufw allow 8888
python manage.py runserver
# python manage.py runserver 0.0.0.0:8888
# sudo ufw allow 8888
测试
http http://localhost:8888
# http http://10.31.161.66:8888
http http://localhost:8888
# http http://10.31.161.66:8888
创建一个hello app
python manage.py startapp helloapp
python manage.py startapp helloapp
写 helloapp/views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def hello(request):
return HttpResponse('Hello World!')
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def hello(request):
return HttpResponse('Hello World!')
配置 从浏览器发来的请求路由
from django.conf.urls import url,include
from django.contrib import admin
from helloapp.views import hello
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/', hello),
]
from django.conf.urls import url,include
from django.contrib import admin
from helloapp.views import hello
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello/', hello),
]
在settings.py中启用helloapp
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'helloapp',
]
= [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'helloapp',
]
Helloworld 中的 B/S架构
server : python manage.py runserver 127.0.0.1:8000
browser: http://127.0.0.1:8000/hello
Helloworld中的MTV架构
数据库 中 有 100个文章
Server:使用Python 把数据库中的100个文章读取出来,并显示在网页上。
Browser: http://10.31.161.78/articles/
CGI :
# 读取所有 数据
# 连接数据库
# 执行 select * from articles
# articles
# 拼接html文档(包含所有文章,文章如何显示)
html = ""
html += "
# for article in articles:
# 读取所有 数据
# 连接数据库
# 执行 select * from articles
# articles
# 拼接html文档(包含所有文章,文章如何显示)
html = ""
html += "
# for article in articles:
如果使用MVC
解耦
M:Model, 对数据的抽象,它不是数据,它是数据的接口。
例如: article表
class Article():
title,content
Article.object.all()
Article.save()
例如: article表
class Article():
title,content
Article.object.all()
Article.save()
V:View,负责把数据格式化后展现给用户。
C:Controller,根据具体的request,控制model获取相应的数据,把数据传给对应的视图View。
Django中的MVT
传统MVC中的V : 展现数据 (展现哪些数据+ 如何展现)
M:Model
V: View ( 展现哪些数据)
T: Template(如何展现)
Admin管理
-
查看数据库
sqlite> .tables django_migrations sqlite>
sqlite> .tables django_migrations sqlite> -
创建表(迁移数据库)
python manage.py makemigrations python manage.py migrate # 创建表
python manage.py makemigrations python manage.py migrate # 创建表
3. 创建超级用户
3. 创建超级用户
python manage.py createsuperuser
4. 测试
4. 测试
python manage.py runserver
在浏览器中输入 http://localhost:8000/admin
## pyenv的使用
1. 安装pyenv
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
```
## pyenv的使用
1. 安装pyenv
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
```
-
重新载入配置文件
source ~/.bash_profile source ~/.bashrc
source ~/.bash_profile source ~/.bashrc -
查看pyenv使用指南
pyenv --help
pyenv --help -
查看使用pyenv可以安装的Python版本
pyenv install --list|grep python
pyenv install --list|grep python -
使用pyenv安装不同的版本
pyenv install -v 3.6.0
pyenv install -v 3.6.0 -
查看pyenv已经安装的版本
pyenv versions
pyenv versions使用 pyenv切换使用的Python版本
pyenv global 3.6.0
pyenv global 3.6.0 -
使用pyenv卸载指定的Python版本
pyenv uninstall 2.7.10
pyenv uninstall 2.7.10 -
使用virtualenv管理不同的项目
virtualenv本身是一个独立的项目,用以隔离不同项目的工作环境。
安装和使用方法<略>
-
安装和使用pyenv-virtualenv插件
安装
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile pyenv help virtualenv
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/pyenv/plugins/pyenv-virtualenv echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile source ~/.bash_profile pyenv help virtualenv使用
pyenv virtualenv 2.7.13 first_project pyenv virtualenv 2.7.13 second_project pyenv virtualenvs pyenv activate first_project pyenv deactivate pyenv activate second_project pyenv virtualenv-delete first_project
pyenv virtualenv 2.7.13 first_project pyenv virtualenv 2.7.13 second_project pyenv virtualenvs pyenv activate first_project pyenv deactivate pyenv activate second_project pyenv virtualenv-delete first_project -
<span style="color:#333333">由数据库生成models: python manage.py inspectdb > web/models.py</span>