之前一直是在Ubuntu下进行Python和Django开发,最近换了电脑,把在Virtual Box 下跑的Ubuntu开发机挪过来总是频繁崩溃,索性就尝试把开发环境挪到Windows主力机了。

不得不说,巨硬家这几年在多元并包方面真的是走在了世界前列。特别是VSCode,两年前已经成为了我在Linux下的主力IDE。于是直接Google到了这篇爽文:Django Tutorial in Visual Studio Code, 下面会结合Anaconda的开发环境,翻译这篇官方指导。

0x1 - 安装清单

- Win10

- Anaconda3

- Vistual Studio Code(VSCode)

分别下载并安装好以上三个神器,选的都是最新稳定版。

0x2 - Anaconda 管理并配置Python开发环境

  • 打开Anaconda Prompt终端命令行工具(不是Anaconda Navigator),先来练习下conda,类似于pip和virtualenv的结合体。

  • 用conda创建Python开发虚拟环境,注意要在环境名称(这里是my_env)后加上python版本。
conda create -n wechat_env python=3.7
  • 移除环境

conda remove -n wechat_env --all

  • 查看虚拟环境列表, *代表当前工作所在的虚拟环境:
(base) C:\Users\freman.zhang>conda env list
# conda environments:
#
base * C:\Anaconda3
wechat_env C:\Anaconda3\envs\wechat_env
  • 激活及切换环境:
(base) C:\Users\freman.zhang>conda activate wechat_env
(wechat_env) C:\Users\freman.zhang>conda env list
# conda environments:
#
base C:\Anaconda3
wechat_env * C:\Anaconda3\envs\wechat_env
(wechat_env) C:\Users\freman.zhang>conda deactivate
(base) C:\Users\freman.zhang>
  • 安装Django到开发环境,如有需要可以指定版本号。
conda install django
conda install django==2.2.5

这样conda就会自动下载并安装好python, pip和django到指定的开发环境,无需再事先或单独安装在OS中。

conda详细的管理命令可以到官方文档中详细了解。

0x3 - 在VSCode中配置集成开发环境

Django是一个为安全,快速和可扩展的web开发所设计的高级Python框架。Django对于URL路由, 页面模板和数据处理等提供丰富的支持。

在接下来的tutorial中,我们将创建一个简单的三页应用,并将会用到一个通用的基础模板。通过在VSCode中完整的过一遍这个开发过程,我们将可以更好的理解如何使用VSCode的命令终端,编辑器和调试器等来高效便捷地进行Django应用开发。

整个示例项目的完整代码在Github: python-sample-vscode-django-tutorial.

1. 准备条件

- 在VScode中安装python插件

- 下载安装python,在Windows中还需特别注意PATH环境变量的配置

我们的安装包和开发环境在前面已经都通过conda完成,对比后就可非常明显的体现出Anaconda在包管理方面的便捷性。

2. 集成虚拟开发环境到VSCode中

  • 在VSCode中按组合键ctrl+shift+P,输入python,先择Python: Select Interpreter, 这个命令将会展示出一个所有VSCode可用的python解释器清单。

  • 从这个清单中选择我们上面用conda新建的开发环境 -- 以 ./env or .\env开头

  • 按组合键Ctrl+Shift+`打开一个新的集成命令终端,在VSCode的地步状态栏,可以看到当前开发环境的标识

0x4 - VSCode中创建Django项目

1. 按组合键Ctrl+Shift+`进入开发终端,相关解释器和虚拟开发环境将会自动被激活。然后执行如下命令,如果没有任何报错,用浏览器打开http://127.0.0.1:8000,我们将会看到Django的默认欢迎页。

django-admin startproject web_project C:\web_project
cd C:\web_project
python manage.py startapp hello
python manage.py runserver

2. 接下来是Django应用的基础构建

  • hello/views.py
from django.http import HttpResponse

def home(request):
return HttpResponse("Hello, Django!")
  • hello/urls.py
from django.urls import path
from hello import views urlpatterns = [
path("", views.home, name="home"),
]
  • web_project/urls.py
from django.contrib import admin
from django.urls import include, path urlpatterns = [
path("", include("hello.urls")),
]

3. 保存所有文件,然后启动服务 python manage.py runserver,用浏览器访问应用网址 http://127.0.0.1:8000,将会看到如下:

0x5 - VSCode中创建Django debugger launch profile开启自动调试

到这里你可能已经在想,是否有更好的方式来调试和运行应用服务,而非每次执行一次python manage.py runserver 呢?必须有的!

VSCode的debugger是支持Django的,我们通过自定义 launch profile就可以实现这一点。

1. 切换左边的活动栏到Debug, 在Debug视图的顶部,我们可以看到如下。No Configuratins表示Debugger还未配置任何运行设定(launch.json)。

2. 点击齿轮创建并开启一个launch.json文件,这个文件里面已经包含了一些调试设定,每种都是以独立的JSON对象存在。我们添加如下:

{
"name": "Python: Django",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"console": "integratedTerminal",
"args": [
"runserver",
"--noreload"
],
"django": true
},

其中"django": true告诉VSCode开启Django页面模板调试功能。

3. 点击Debug > Start Debugging按钮,浏览器中打开URL http://127.0.0.1:8000/将可以看到我们的APP顺利的跑起来了。

其实任何时候感觉想要调试一下应用效果时,我们都可以用Debug来启动服务,此外这个操作还会自动保存所有打开着的文件。

这样就不用每次都到命令行敲一遍启动命令,倍爽有木有!!!

4. Debug不仅仅只有启动和保存功能,我们下面通过具体案例来体验下高级用法。

  先码代码

  • hello/urls.py:添加访问路由到urlpatterns list中
path("hello/<name>", views.hello_there, name="hello_there"),
  • hello/views.py
import re
from datetime import datetime
from django.http import HttpResponse def home(request):
return HttpResponse("Hello, Django!") def hello_there(request, name):
now = datetime.now()
formatted_now = now.strftime("%A, %d %B, %Y at %X") # Filter the name argument to letters only using regular expressions. URL arguments
# can contain arbitrary text, so we restrict to safe characters only.
match_object = re.match("[a-zA-Z]+", name) if match_object:
clean_name = match_object.group(0)
else:
clean_name = "Friend" content = "Hello there, " + clean_name + "! It's " + formatted_now
return HttpResponse(content)

5. 在Debug中设定断点(breakpoints)于now = datetime.now() 所在行。

6. 按F5或Debug > Start Debugging 开启调试,VSCode顶部将会出现一个如下的Debug工具栏。

Pause (or Continue, F5), Step Over (F10), Step Into (F11), Step Out (Shift+F11), Restart (Ctrl+Shift+F5), and Stop (Shift+F5). See VS Code debugging for a description of each command.

7. 在下面的终端中也会出现相关的控制信息。通过浏览器打开URL http://127.0.0.1:8000/hello/VSCode, 在页面渲染完成前,VSCode会暂停在设定的断点处。黄色小箭头代表其是即将执行到的下一行。

点击 Step Over(F10) 执行 now = datetime.now()所在行。

在左边Debug菜单栏我们将会看到很多实时输入信息,包含运行时的变量值等等。我们可以在这里检查各个赋值或相关信息是否符合设计目标。

程序暂停在断点位置时,我们可以回到代码中更改相关语句,调试器中的相关输入信息也会实时做状态更新。我们可以尝试将formatted_now的赋值做如下更改,用来直观地比较查看下调试器状态更新。

now.strftime("%a, %d %B, %Y at %X")
'Fri, 07 September, 2018 at 07:46:32'
now.strftime("%a, %d %b, %Y at %X")
'Fri, 07 Sep, 2018 at 07:46:32'
now.strftime("%a, %d %b, %y at %X")
'Fri, 07 Sep, 18 at 07:46:32'

我们可以按F5逐行执行接下来的语句,并观察调试器输出信息,直到最终应用页面完全渲染完成,点选Debug > Stop Debugging 或 command (Shift+F5)关闭调试。

0x5 - Go to Definition

VSCode也支持查看函数和类的定义查看:

  • Go to Definition jumps from your code into the code that defines an object. For example, in views.py, right-click on HttpResponse in the home function and select Go to Definition (or use F12), which navigates to the class definition in the Django library.

  • Peek Definition (Alt+F12, also on the right-click context menu), is similar, but displays the class definition directly in the editor (making space in the editor window to avoid obscuring any code). Press Escape to close the Peek window or use the x in the upper right corner.

0x6 - Template, Static, Models编程

接下来可以在模板,静态文件和数据处理的功能编程实现上实践上面介绍的这些功能,练习整个集成开发环境的操作熟练度。

其实如果有一定基础的话,我相信一天你就将会从入门到精通。

详细的代码个实现步骤在这里就不在继续往下贴了。详细教程大家可按这个链接中的内容参照实现。

https://code.visualstudio.com/docs/python/tutorial-django#_create-multiple-templates-that-extend-a-base-template

0x7 - 问题分享

整个过程中只有遇到的问题:

1. VSCode无法原生支持Django Models相关对象的关联检查。

我们需要额外做点工作:

  • ctrl+shift+`(ESC下面那个键)打开命令终端,不用手工敲任何命令,终端会自动切换和激活到对应的虚拟开发环境。

安装pylint-django

  • 然后进入VSCode setting里面设定pylint参数,具体如下:

就这样,问题解决!

==========================================================

由于还有繁重的日常工作要忙,这篇文章历时了几天时间断断续续整理出来,也精简了不少官方指导中的文字描述。可能会对各位阅读和操作来带一些困扰,所以还是建议各位直接去读官方文档。我们这里主要是集中整理了下Anaconda和VSCode的集成开发环境配置,以备未来不时之需,若能顺便帮到任何人,将倍感欣慰。各位若有任何问题,欢迎提出,我将会汇整日后自己或其他来源收集到的问题陆续补充到0x7。

最后,希望大家能多多动手

多多敲代码

多多点赞

多多分享

回家遛女儿去咯

Over~~

VSCode, Django, and Anaconda开发环境集成配置[Windows]的更多相关文章

  1. Nginx+Python+uwsgi+Django的web开发环境安装及配置

    Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...

  2. Ubuntu16.04下配置VScode的C/C++开发环境

    博客转载:https://blog.csdn.net/weixin_43374723/article/details/84064644 Visual studio code是微软发布的一个运行于 Ma ...

  3. VSCode 微信小程序 开发环境配置 详细教程

    本博客已暂停更新,需要请转新博客http://www.whbwiki.com/231.html 配置 VsCode 微信小程序开发环境并非不用官方的 微信小程序开发者工具 ,而是两者配合适用,可以极大 ...

  4. 在CodeBlocks 开发环境中配置使用OpenCV (ubuntu系统)

    CodeBlocks是一个开放源代码的全功能的跨平台C/C++集成开发环境.CodeBlocks由纯粹的C++语言开发完毕,它使用了蓍名的图形界面库wxWidgets.对于追求完美的C++程序猿,再也 ...

  5. 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)

    Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...

  6. 一个电脑的重装到java开发环境安装配置的全过程

    刚拿到一台别人用过的电脑.看着c盘爆满,而且用了还是windows7操作系统,强迫症发作马上就准备重装系统. 之前换固态使用wepe制作U盘启动盘装系统的步骤和过程全部忘记的,贼尴尬. 同事都看不过眼 ...

  7. pycharm+python+Django之web开发环境的搭建(windows)

    转载:https://blog.csdn.net/yjx2323999451/article/details/53200243/ pycharm+python+Django之web开发环境的搭建(wi ...

  8. PyCharm社区版+Django搭建web开发环境-2

    接上一篇:PyCharm社区版+Django搭建web开发环境-1 1. 创建好django项目并建立app应用:web 2. setting.py:配置app应用 INSTALLED_APPS = ...

  9. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

随机推荐

  1. ESP8266开发之旅 网络篇⑯ 无线更新——OTA固件更新

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...

  2. JVM 启动调优总结

    启动命令 格式: java -jar 命令行参数 jar包路径 .示例如下 java -Dfile.encoding=utf-8 -jar -XX:MetaspaceSize=128m -XX:Max ...

  3. R的安装

    更新时间:2019.09.23 1. 序言 之前曾经用过一段时间的R(一直忍受着原生R那个超级"简洁"的界面),但是后来重装了系统并且学习了Python,就没有再怎么碰过R了.然而 ...

  4. Dubbo学习系列之十六(ELK海量日志分析框架)

    外卖公司如何匹配骑手和订单?淘宝如何进行商品推荐?或者读者兴趣匹配?还有海量数据存储搜索.实时日志分析.应用程序监控等场景,Elasticsearch或许可以提供一些思路,作为业界最具影响力的海量搜索 ...

  5. 【Windows系统】win10系统假死,窗口不能动,鼠标能动或不能动,最后蓝屏显示错误码: VIDEO_DXGKRNL_FATAL_ERROR 的解决办法

    1. 问题的出现过程 最近博主自己用的 windows10 系统就碰到了这个问题. 一开始出现这个问题的征兆是鼠标会时不时地卡顿,一出现卡顿就会等个 1-3秒才能动.然后频繁卡顿(注意,这里根据经验就 ...

  6. Java 基本数据类型的取值范围

    基本数据类型,字节数,位数,最大值和最小值. 1. 基本类型:short 二进制位数:16 包装类:java.lang.Short 最小值:Short.MIN_VALUE=-32768 (-2的15此 ...

  7. Netty 入门,这一篇文章就够了

    Netty是Java领域有名的开源网络库,特点是高性能和高扩展性,因此很多流行的框架都是基于它来构建的,比如我们熟知的Dubbo.Rocketmq.Hadoop等,针对高性能RPC,一般都是基于Net ...

  8. mha格式的CT体数据转为jpg切片

    mha格式的CT体数据转为jpg切片 mha格式 .mha文件是一种体数据的存储格式,由一个描述数据的头和数据组成,一般我们拿到的原始医学影像的数据是.dcm也就是dicom文件,dicom文件很复杂 ...

  9. MySQL的统计信息学习总结

    统计信息概念 MySQL统计信息是指数据库通过采样.统计出来的表.索引的相关信息,例如,表的记录数.聚集索引page个数.字段的Cardinality.....MySQL在生成执行计划时,需要根据索引 ...

  10. [考试反思]1102csp-s模拟测试98:苟活

    好像没有什么粘文件得分的必要(本来就没多少分了也丢不了多少了) 而且从这次开始小绿框不代表首杀而代表手速了2333 其实我挺菜的,牛一个frepoen送掉100分才跟我并列%%%milkfun mik ...