Django环境搭建及简单使用

虚拟技术

  1. 虚拟机
    • 比较笨重
    • 吃资源
    • 功能最健全
  2. 虚拟容器
    • 开发环境
    • 项目运行环境
    • docker
  3. 虚拟环境
    • python特有的开发环境

虚拟环境搭建

  1. 安装虚拟环境软件
   $ pip install  virtualenv
  1. 安装虚拟环境统一管理软件
    apt install virtualenvwrapper
  2. 配置虚拟环境
    • 创建一个目录用来存放我们的虚拟环境
    • 配置环境变量
      • ~/.bashrc 用户级环境变量
      • export WORKON_HOME=XXX
      • source /YYY/virtualenvwrapper.sh

虚拟环境使用

  1. 创建虚拟环境
$ mkvirtualenv    NAME 
-p   python_path   可以创建指定python版本的虚拟环境

2. 删除虚拟环境
$ rmvirtualenv NAME
3. 进入已有虚拟环境
$ workon NAME
4. 退出虚拟环境
$ deactivate

MVC,MTV

  1. 只要做Web开发,就一定用过MVC
  2. Web开发
    • Python
    • Java
    • PHP
    • node
    • go
  3. MVC
    • Model 用来处理数据的,封装数据操作
    • View 视图,呈现给用户的样式
    • Controller 控制器,协调Model和View关系,接收请求
  4. MTV
    • Model 用来处理数据的
    • Template 模板,用来呈现给用户看大
    • Views 视图函数,和Controller一样, 接收请求,协调Model和Template
  5. Django除了基本的MTV外
    • 还有urls
    • 请求分发器(路由器

HelloDjango

  1. 安装django
pip install  django==1.11.7

2. 验证安装
$ pip freeze
- shell中验证

     $ import  django
     $ django.get_version()

3. 创建Django项目
- django-admin startproject XXX
- XXX 项目名字,项目目录
- XXX 包
- init 初始化文件,包的标识文件
- settings 配置文件,设置文件
- urls 路由,请求分发器,程序被请求时的第一入口
- wsgi 网关接扣,开发过程中从来不会使用,部署项目的时候使用
- manage.py 项目的管理工具
4. 启动项目
$ python manage.py runserver
- 默认情况下,只允许本机访问,端口是8000
- 也可以通过参数指定特定的端口和I
- $ python manage.py runserver [ip:port]
- - 服务器的ip
- 0.0.0.0 代表本机的所有ip允许被访问
- 不指定ip也能使用
- django中继承了一个开发者服务器
- 只能用于开发
- 功能全,性能低
- python代码变更会自动重启
5. 创建一个应用
$ python manage.py startapp XXX
- 将XXX添加进settings中
- XXX
- init 初始化文件,包的标识
- models 模型文件
- views 视图函数文件
- tests 测试文件
- admin 管理者,django自带了一套admin系统
- apps 应用配置

跑通流程
这里写图片描述

  1. 从浏览器到urls
    • 在urls中添加url规则
      • 匹配规则
      • 视图函数
  2. views 到响应

    • 可能会连接数据库
    • 可能会渲染模板

    • 必须返回HttpResponse

  3. 添加了模板渲染

    • render
    • 渲染html
  4. 添加和模型交互,和数据交互
    • 流程
      1). 从urls进来
#urls.py:

from django.conf.urls import url
from django.contrib import admin

from App import views

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hello/', views.hello),
    url(r'^index/',views.index),
    url(r'^weather/', views.weather),
    url(r'^get_student/',views.get_student),
    url(r'^get_student2/', views.get_student2),
]  

2). urls对应views

# views.py

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
from App.models import Student


def hello(request):
    return HttpResponse('Django')


def index(request):
    return HttpResponse('<h1>Intro</h1>')


def weather(request):
    return render(request, 'weather.html')


# 在终端上显示
def get_student(request):
    students = Student.objects.all()

    for student in students:
        print(student.s_name + '是' + str(student.s_age))

    return HttpResponse('查询完毕')


# 通过模板在网页中显示
def get_student2(request):
    students = Student.objects.all()

    for student in students:
        print(student.s_name + '是' + str(student.s_age))

    return render(request, 'StudentList.html', context={'students': students})

3). views调用models,并且models返回数据到views

# models.py

from django.db import models
# Create your models here.

class Student(models.Model):
    s_name = models.CharField(max_length=16)
    s_age = models.IntegerField(default=18)

4). views拿着数据渲染模板

# StudentList.html 学生信息模板

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>学生列表</title>
</head>
<body>
<h2>学生列表</h2>

{% for student in students %}
    <li>{{ student.s_name }}</li>
{% endfor %}

</body>
</html>
# weather 天气预报模板
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>天气</title>
</head>
<body>

<h3>天气预报</h3>

<ul>
    <li>有雨</li>
    <li>冰雹</li>
    <li>雷阵雨</li>
    <li>多云</li>
    <li>不要脸</li>
</ul>

</body>
</html>
 - 模板呈现给用户

这里写图片描述

PyCharm

  1. 常用快捷键
    • 代码提示
    • **万能键 alt + ente**r
      • 将光标放在代码报错区域
    • 参数列表
      • control + p

服务器

  1. 阿里云服务器
    • 每天上午10:00
  2. AWS 亚马逊服务器
    • 免费一年(信用卡)
    • 淘宝虚拟信用卡(8.8)
    • 可以搭建翻墙服务器

homework

  1. 画请求流程图
  2. 创建一个学生模型
    • 查询学生列表
  3. 创建一个班级模型
    • 查询班级列表
  4. 创建一个添加学生和班级的视图函数
  5. 创建一个获取单个学生和班级方式
    • 通过点击班级,可以获取这个班里的所有学生
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值