Django框架之1.虚拟环境配置与新建项目 添加APP添加视图和路由

主要步骤:
1.安装pipenv:

pip install pipenv
  1. 创建一个文件夹,比如djangoTest
  2. 创建虚拟环境
pipenv shell

4.配置环境变量中的WORKON_HOME:这个位置是放置新创建的虚拟环境的,我设置的是D:\ENVS
5.从pycharm指定该虚拟环境使用的python环境:这个环境可以从envs里找
6.在该环境安装django和配置django(下文详述)
但是,有个独特的:django框架更加全面,更加大,不灵活,不过使用起来不用定义太多的其他功能
Django也遵循MVC思想,但是有自己的一个名词,叫做MVT
MVT模式:
在这里插入图片描述
Django从请求到接到响应的生命周期
python3.6.5 版本的更稳定

  • 安装django:
    在这里插入图片描述
    我们在使用中推荐使用django2.2 而默认pip安装的是3.3 所以需要加参数进行相关的限制
pip install Django==2.2

,这样就可以安装指定的版本了
安装之后可以通过pip list查看当前版本
在这里插入图片描述

  • 创建django文件:
    1.通过专业版pycharm进行创建时可以通过该方法:
    在这里插入图片描述
    社区版用不了
    2.通过命令行的方式干:
django-admin startproject class0

在创建之后,会在文件夹内生成好多必要的内容
在这里插入图片描述
很方便
连manage.py都有了,都不用自己写

python manage.py runserver
也可以指定端口:
python manage.py runserver 8080

需要先进行数据迁移:

python manage.py migrate
然后
python manage.py runserver 8080

在这里插入图片描述
要进行数据迁移的原因是在django中进行了数据库迁移,在settings中

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

sqlite3是一个微型的数据库,mysql更加高并发

  • Django项目的创建以及app的创建
    app:app是django项目的组成部分。一个app代表项目中的一个模块,所有URL请求的响应都是由app来处理。比如豆瓣,里面有图书,电影,音乐,同城等许许多多的模块,如果站在django的角度来看,图书,电影这些模块就是app,图书,电影这些app共同组成豆瓣这个项目。因此这里要有一个概念,django项目由许多app组成,一个app可以被用到其他项目,django也能拥有不同的app。
    有多个app 的好处:易于管理 协同开发和维护
    创建app:比如我创建了个名为book的app
python manage.py startapp book

在这里插入图片描述
路由严格的开始和严格的结束
django不需要一个严格的开始和结束,后面的斜杠可以不用加,自己就给加上了

  • 初体验:
    在urls中进行实验:
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse

def index():
    return 'hello world'

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
]

其中可以指定默认的视图:
此时运行会出现错误
在这里插入图片描述
我们进入debug.py,可以看到
django2.2的debug有问题,没有指定编码方式,所以需要我们在源码里改动

    def get_traceback_html(self):
        """Return HTML version of debug 500 HTTP error page."""
        with Path(CURRENT_DIR, 'templates', 'technical_500.html').open(encoding='utf-8') as fh:
            t = DEBUG_ENGINE.from_string(fh.read())
        c = Context(self.get_traceback_data(), use_l10n=False)
        return t.render(c)

在open中添加encoding=‘utf-8’,指定编码格式

  • 修改之后再运行:
    此时可以在打开的127.0.0.1:8000中看到debug的信息
    在这里插入图片描述
    也就是说index里没有参数,需要用django专用的格式进行输出
    此时给index加入参数request
    还需要用django指定的response方式:
    通过下面的方式
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse

def index(request):
    # name = request.Get.get('name')
    return HttpResponse('hello world')

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', index),
]

因为视图需要指定:HttpResponse,其基类或者子类作为输出的格式
通过该方式就可以正常显示了
在这里插入图片描述

views.py初体验

在views内定义视图,从url中显示
views

from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.

def book(request):
    return HttpResponse('图书馆首页')

urls

from django.contrib import admin
from django.urls import path
#from django.http import HttpResponse
from book import views

urlpatterns = [
    path('admin/', admin.site.urls),
    # path('', index),
    path('book/',views.book),
    # 注:django不需要写成 /book/,不能写成 book,那样会出错的,因为打开浏览器时会自动给加上的
]

结果:
在这里插入图片描述
过程:
从views定义视图,从urls调用视图和定义路由,从网页打开路由显示,然后完成

django工程的debug选项位置

debug选项在测试环境是需要的,但是在生产环境是要去掉的,不能给客户暴露代码问题
位置:工程内的settings文件内的debug选项默认为True,需要时可以改成False

pip 批量导出和按表批量安装

背景:在开发中一般为一个项目使用一个虚拟空间,但是如果两个都是flask项目或者都是django项目,我们在之前进行过这个项目的整体搭建,该安装的包都装上了,再开一个新的虚拟环境,我还要再次重复这个过程:头大,
于是,我们可以采用批量安装的方式进行操作
参考了文章:http://blog.csdn.net/weixin_41287692/article/details/89314399
pip freeze 查询各种安装包的版本, > 重定向到requirements文本,文本名字可以是其他的
在旧的环境执行

pip freeze > requirements.txt  

将该文件放入新建的虚拟环境下
安装导出的各种安装包, -r 表示逐行读取安装
执行

pip install -r requirements.txt

即可实现“环境的迁移”

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值