大家好,又见面了,我是你们的朋友全栈君。
今天来简单总结一下使用Pycharm和Django来搭建一个最简单的Python Web 应用(就是我们所说的‘Hello World’)。在这里,我们首先假设已经安装好了Python(2.x 和3.x版本均可)。
安装Django
无论是Python2.x还是Python3.x版本,都可以使用pip来安装Django。在控制台使用如下命令:
代码语言:javascript复制pip install django
安装成功后,在ipython里面或者Pycharm的Python console控制台导入django,并查看版本信息,使用如下命令:
代码语言:javascript复制import django
django.VERSION
就看到如下信息,表示django已经安装成功。
代码语言:javascript复制Out[3]:
(1, 11, 3, 'final', 0)
接下来就让我们用Pycharm 开启第一个Django程序吧。
第一个程序:Hello World
1. 创建一个django程序
Pycharm可以帮助我们很自动化的建立一个完整的项目结构。点击Pycharm的File,选择New Project…,在选择左侧的Django,在右侧填写项目路径和选择Python版本。如下图:
点击确认后,在我刚刚新建的项目文件下会看到以下的文件结构:
这里简单解释一下这几个文件: __init__.py:这是一个初始化的空文件,一般我们不需要动它。 settings.py: 这是一个配置文件,里面有关于语言、时区、安装的app声明等等信息; urls.py: 这个文件里指明了在访问一个页面时要调用的视图啊等的映射,确保在访问时可以正确定位到你要实现的功能; wsgi.py: 这是一个关于web程序的wsgi的相关配置,我们暂时不需要修改它。 manage.py: 可以理解为他是django应用的控制中心,许多命令的实现,都需要他来调动,后面说。
2. 为项目创建一个app
后面我们每添加一个web application,就需要按照这样的方式来创建一个app,具体操作如下: 在cmd或者Pycharm的Terminal控制台里,cd 进入到上面创建的项目的manage.py文件所在的路径下,例如:
代码语言:javascript复制cd :PythonProjectsmysite>
然后使用manage.py来创建一个app,输入命令如下:
代码语言:javascript复制python manage.py startapp blog
其中blog是我摇创建的app的名字,之后刷新pycharm的文件结构,会看到在刚刚新建的mysite项目下,会多出来一个blog文件夹,里面的文件结构如下:
(1)修改blog/views.py
这里的每个文件的作用可以参考文档,重点说一下重点blog/views.py这个文件,他是一个视图文件,等你回来我们要显示的Hello World就要在这个文件里实现。我们在这个文件定义一个函数index()来实现我们的要求,具体如下:
代码语言:javascript复制from django.http import HttpResponse
def index(request):
return HttpResponse('Hello!')
(2)修改mysite/settings.py
上面新建了app后,我们就要想将这个app的名字 添加到mysite目录下的settings.py文件中,找到INSTALL_APP,在末尾添加,具体如下:
代码语言:javascript复制INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', # 这里直接写app的名字就好,写mysite.blog会报错
]
(3)配置mysite/urls.py
这是最后一步配置,需要在这里指明上面写的app以及app要实现的功能,不然映射不正确,在访问网页的时候回出现404的错误,具体如下:
代码语言:javascript复制from django.conf.urls import url
from django.contrib import admin
from blog import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index),
]
这里有几个地方需要注意:
- 第一是url的导入,在Django 1.10以前的版本中是使用的pattern,但是在Django1.10版本以后,就去掉了pattern,换成了url,这里需要注意,这里使用的是1.11的版本,所以用的是url;
- 第二是admin的导入,这是默认的映射,你也可以去掉,但是他的作用后面我们访问页面的时候再说。
- 第三是url(r’^index/’, views.index)这里接受两个参数,一个是用 正则表达式表示的键值,这个可以任意起名,只要在访问网页时用它就行了;第二个参数是我们要实现的那个视图函数。
(4)启动服务
上述的所有文件都配置无误后,就可以启动服务了。在cmd或者Terminal控制台,cd 到manage.py所在路径下,执行:
代码语言:javascript复制python manage.py runserver
会看到如下的提示信息:
这个时候我们在浏览器里输入图中提示的地址: http://127.0.0.1:8000/index,(其中index就是urls.py里我们设置的那个键值),回车后会看到如下界面:
如果我们输入http://127.0.0.1:8000/admin,则会出现如下的验证信息:
问题
在修改urls.py文件时,有个问题困扰我好一会儿。在导入views时,Pycharm引导的方式是 使用from mysite.blog imoprt views 或者import mysite.blog.views,但是如果这样做的话,在启动服务的时候,会报错ModuleNotFoundError,也就是说根本找不到mysite.blog;把他修改成from blog import views时,可以正常启动服务看到我们想要的结果。但此时有个问题,会发现在Pycharm中会出现红色的错误提示,很郁闷有没有???好吧,我们就当这是Pycharm的一个bug好了吧,强迫症就先忍忍吧!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175264.html原文链接:https://javaforall.cn