前言
当你想走上测试开发之路,用python开发出一个web页面的时候,需要找一个支持python语言的web框架。django框架有丰富的文档和学习资料,也是非常成熟的web开发框架,想学python开发的小伙伴,从django入手是一个不错的选择。本篇写一个简单的“hello world!”页面,开始django之旅~
环境准备:
Python 3.7.0
django 3.0.6
pycharm
环境准备
django的环境安装非常简单,只需用pip安装一个django库就可以了,编辑器选择pycharm
pip install django==3.0.6
pip3 install Django==3.0.6 -i https://pypi.tuna.tsinghua.edu.cn/simple
查看版本号:pip show django
安装完之后在cmd检查下是否能用
创建项目
先建一个工程,比如我的项目代码想放到D:Python0811jango_1205目录下,然后新建一个Django project(即一个Django项目实例需要的设置项集合,包括数据库配置、Django配置和引用程序配置。)
打开命令行,cd到一个你想放置你代码的目录,然后运行一下命令:
django-admin startproject helloworld
执行完之后,pycharm中打开jango_1205,就可以看jango_1205工程目录下多了以下层级文件;
这些目录和文件的用处是:
最外层的:helloworld:项目的容器,可以随便命名。
manage.py:一个让你用各种方式管理Django项目的命令行工具。
helloworld/__init__.py:一个空文件,告诉Python这个目录应该被认为是一个python包。
helloworld/settings.py:Django项目的配置文件。
helloworld/urls.py:Django项目的URL声明,就像你网站的“目录”。
helloworld/wsgi.py:作为你的项目的运行在WSGI兼容的Web服务器上的入口。
django-admin
django-admin.exe是一个可执行文件,安装django时候回默认安装到python3Scripts目录下,相关指令用-h查看
启动服务
接下来启动django服务,使用helloworld下的manage.py,先cd到D:Python0811jango_1205helloworld目录下,再在命令行输入以下指令:
python manage.py runserver
启动完成可以看到:Starting development server at http://127.0.0.1:8000/,复制地址在浏览器打开;
django服务默认在8000端口启动,如果想换个端口,可以输入以下指令;
python manage.py runserver 8080
如果一个局域网另外一台电脑也需要能访问,可以监听所有ip:
python manage.py runserver 0.0.0.0:8000
访问的时候,用电脑ip代替127.0.0.1;
用于开发的服务器在需要的情况下会对每一次的访问请求重写载入一遍python代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。
视图和URL配置
在先前创建的helloworld/helloworld目录新建一个view.py文件,并输入代码
#helloworld/helloworld/view.py from django.http import HttpResponse def index(request): return HttpResponse("hello world! come on")
绑定URL与视图函数。打开urls.py文件,删除原来代码,将以下代码复制粘贴到urls.py文件中
#helloworld/helloworld/urls.py from django.conf.urls import url from . import view urlpatterns=[ url(r'^$',view.index), ]
url函数
url()可以接收四个参数,分别是两个必选参数:regex、view和两个可选参数:kwargs、name。
def url(regex, view, kwargs=None, name=None): return re_path(regex, view, kwargs, name)
- regex:正则表达式,与之匹配的URL会执行对应的第二个参数view。
- view:用于执行与正则表达式匹配的URL请求。
- kwargs:视图使用的字典类型的参数。
- name:用来反向获取URL。
多个url设置
urlpatterns里面url(r'^$',view.index)这项是打开首页http://127.0.0.1:8000,平常网站会有多个页面,如果想加个页面地址如:http://127.0.0.1:8000/hui打开另外一个页面。
view.py加个函数
#helloworld/helloworld/view.py from django.http import HttpResponse def index(request): return HttpResponse("hello world! come on") def hui(request): return HttpResponse("come on hui")
urls.py加个配置
#helloworld/helloworld/urls.py from django.conf.urls import url from . import view urlpatterns=[ url('^$',view.index), url('^hui$',view.hui), ]
这样在浏览器上输入地址:http://127.0.0.1:8080/,打开页面出现:hello world! come on
在浏览器输入地址:http://127.0.0.1:8080/hui,打开页面出现: come on hui