Django 创建Hello world
注:
任何一门语言,无论是简单的,复杂的,易上手的,不易上手的,在你所学的基础之上能够创建出第一个“Hello World”,不负责任的说你已经对这个框架或者语言理解了四分之一乃至更多。而后面的你会发现不同语言,不同框架大同小异,但当你深入研究后,又会发现差异是很大的。
因为用惯了VS,在VisualStudio2015以后的版本中,是可以支持python的,且非常方便下载和更新一些常用包,所以我将在VS中使用python3(不建议用Anaconda3)完成 Django框架的使用
当然,你也可以选用多数人使用的PyCharm,不建议使用自带IDLE
首先我们新建一个项目
选择空Django Web项目,点击确定
此时创建会让你安装包
如果你已经在你的电脑上安装好了包,点击我自己安装
然后查看你的python默认环境中是否有Django的包
若有显示此包,那么就说明此时你已经安装好了Django,不需要再配置
若不显示此包,你需要返回我的Django网络框架使用(一)去安装
若你没有安装Django包,也不想尝试终端输入.
那么你可以使用‘安装到虚拟环境’,此时加载的包只对此项目可用,但这时候的项目方便移植不同平台。
当你进入env时,你会看到一些文件都已帮你自动加载进去了
不建议使用所有项目共享,他会帮你重新下载一个Django,版本会冲突,导致你每次新建项目都得下载一遍。
创建完成后我们可以查看项目的目录结构:
└─DjangoWebProject3
│ DjangoWebProject3.pyproj
│ manage.py
│ requirements.txt
│
└─DjangoWebProject3
settings.py
urls.py
wsgi.py
__init__.py
目录说明:
DjangoWebProject3 `` 项目容器
DjangoWebProject3.pyproj
识别为VS所创建的项目
manage.py“ 命令行工具,可让你以不同方式与该 Django 项目进行交互
内容:
#!/usr/bin/env python
"""
Command-line utility for administrative tasks.(命令行程序)
"""
import os
import sys
if __name__ == "__main__":
os.environ.setdefault(
"DJANGO_SETTINGS_MODULE",
"DjangoWebProject3.settings"
)
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
DjangoWebProject3/__init__.py
空文件,识别该目录是一个 Python 包。
DjangoWebProject3/settings.py
该 Django 项目的设置/配置。
DjangoWebProject3/urls.py
该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”网址目录”。
DjangoWebProject3/wsgi.py
一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
此时点击运行,会出现一个命令窗口,显示你需要迁移一些东西
You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
November 19, 2017 - 10:22:40
Django version 1.11.7, using settings 'DjangoWebProject1.settings'
Starting development server at http://127.0.0.1:54636/
Quit the server with CTRL-BREAK.
此时运行端口随机
所以此时需要在此目录下运行cmd,写入
python manage.py migrate
将所需东西迁入
或者你可以
在 项目目录中可用命令行输入以下命令,启动Django服务器:
python manage.py runserver 0.0.0.0:8000
0.0.0.0 ipv4 预留地址,指代所有地址,8000 为端口号(默认端口)。
在浏览器输入你服务器的ip及端口号,如果正常启动,输出结果如下:
视图和 URL 配置
在先前创建的 web项目目录下的web目录中新建一个 view.py 文件
写入代码:
from django.http import HttpResponse
def ser():
return HttpResponse("Hello World!");
绑定 URL 与视图函数。
打开 urls.py 文件
将以下代码写到 urls.py 文件中:
from django.conf.urls import include, url
from . import view # 从同级目录导入
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = [
# Examples:
# url(r'^$', Web1.views.home, name='home'),
# url(r'^Web1/', include('Web1.Web1.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
url(r'^$' , view.ser),
]
我们也可以修改访问路径:
urls.py 修该 urlpatterns代码:
urlpatterns = [
url(r'^index$', view.ser),
]
通过浏览器打开 http://localhost:端口号/index:
**项目中如果代码有改动,服务器会自动监测代码的改动并自动重新载入
如果你已经启动了服务器则不需手动重启。**
include()函数
include()允许引用其他URLconf。
include()函数的正则表达式没有$(字符串尾部匹配字符),而是一个尾部斜线。
每当Django遇到include()时,它将切割与该点匹配的URL的任何部分,并将剩余的字符串发送到包含的URLconf以供进一步处理。
include()的想法是使插入和使用URL变得容易。
例:
若在项目中存在URLconf(polls/ urls.py)
那么当截取polls时,可以放在“/polls/”下,或在“/ fun_polls /”下,或“/ content / polls /”或任何其他路径的根,应用程序将仍然工作
url() 函数
url() 可以接收四个参数
两个必选参数:regex、view
regex: 正则表达式,与之匹配的 请求URL 会执行对应的第二个参数 view的东西。
django从第一个正则表达式开始,并在列表中向下,将请求的URL与每个正则表达式进行比较,直到找到匹配的正则表达式。
请注意,这些正则表达式不搜索GET和POST参数或域名。
例如,在https://www.example.com/myapp/的请求中,URLconf将查找 myapp /。
在https://www.example.com/myapp/?page=3的请求中,URLconf也会查找myapp /。
view: 用于执行 处理正则表达式匹配的 URL 请求的模块。
两个可选参数:kwargs、name
kwargs: 视图使用的字典类型的参数。
name: 用来反向获取 URL,并赋给name值
附:
命令行通过 django-admin.py来创建一个项目:
此文件在python33的Script下
django-admin.py的命令介绍:
[root@solar ~]# django-admin.py
Usage: django-admin.py subcommand [options] [args]
Options:
-v VERBOSITY, --verbosity=VERBOSITY
Verbosity level; 0=minimal output, 1=normal output,
2=verbose output, 3=very verbose output
--settings=SETTINGS The Python path to a settings module, e.g.
"myproject.settings.main". If this isn't provided, the
DJANGO_SETTINGS_MODULE environment variable will be
used.
--pythonpath=PYTHONPATH
A directory to add to the Python path, e.g.
"/home/djangoprojects/myproject".
--traceback Raise on exception
--version show program's version number and exit
-h, --help show this help message and exit
创建第一个项目
使用 django-admin.py 来创建 HelloWorld 项目:
django-admin startproject mysite
部分来自官网翻译,翻译有误,请及时联系我。。。