Django入门基础教程
Django简介
- Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
- Django是一个开放源代码的Web应用框架,由Python写成。
- Django采用了MVC的软件设计模式,即模型M,视图V和控制器C
安装Django
pip install django
虚拟环境的建立和准备工作
一、通过pycharm创建
可能遇到Non-zero exit code (1)的错误;原因是因为pip不是最新版本,需要执行以下命令:
python -m pip install --upgrade pip 或者使用豆瓣原进行安装。
python -m pip install --upgrade pip -ihttp://pypi.douban.com/simple --trusted-host pypi.douban.com
location输入mysite,点击more settings templates folder是默认模板路径 Application name是创建一个blog的app点击创建之后,pycharm会自动帮我们创建一个虚拟环境和安装最新版的django
创建完成后,会多一个mysite文件夹,打开mysite文件夹
这就是Django的目录结构
blog文件夹是我们刚才创建的APP,
mysite文件夹,放的是Django的一些配置文件
templates文件夹是存放模板文件的,
venv文件夹就是virtualenv虚拟环境目录,venv文件夹不是django源码里的东西,只是我们创建虚拟环境时指定到这个目录下了而已,
manage.py文件则是对django-admin.py的简单包装的一个文件,通过它能运行一些简单的命令。
在blog文件夹中的目录结构
admin.py 可在该文件中注册模型
app.py 包含了blog这个应用程序主要配置内容(之后在激活app时候用到)
migrations包含了应用程序(app)的数据库迁移。迁移可以使Django跟踪模块变化内容,并相应的同步数据库。
model.py包含了应用程序的数据模型,但是也可以被置空。
test.py 用来测试的
views.py包含逻辑内容
手动创建app
在创建项目的时候 也可以选择不用创建APP,可以通过手动创建 在Terminal里输入python manage.py startapp znj 此时我们项目目录里多出一个znj文件夹
迁移数据库
在Terminal下输入下面的命令,生成和同步数据库。
python manage.py makemigrations
python manage.py migrate
关于更多的一些Django常用的命令,大家可以看看这篇文章:Django常用命令
二、手动创建
除了上面通过pycharm创建Django之外,我们还可以通过手动的方法创建Django。
创建一个新的文件夹
创建一个learning_django文件夹,cd到这个目录
创建虚拟环境
创建一个名字为znj_env的虚拟环境
python -m venv znj_env
激活虚拟环境
(注意,使用的是虚拟环境的话前面会有(venv)这个显示的,不然就是没有激活虚拟环境。)
znj_env\Scripts\activate
deactivate 退出激活的虚拟环境
激活后安装Django
pip install Django
查看安装的Django版本
python -m django --version
创建项目
django-admin.py startproject learning_django .
注意后面的结束的 . 一定要写上,这样才能使项目有合适的目录结构
用dir查看一下目录结构或者自己打开文件夹查看,应该是有ll_env,manage.py和learning_log三个文件
再看看learning_django的内容
dir learning_django
应该是__init__.py,setting.py,urls.py和wsgi.py四个.py文件
目录说明:
learning_django : 项目的容器。
manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
learning_django /init.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
learning_django /settings.py: 该 Django 项目的设置/配置。
learning_django /urls.py: 该Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
learning_django /wsgi.py: 一个 WSGI兼容的 Web 服务器的入口,以便运行你的项目。
创建app
manage.py startapp znj
此时我们项目目录里多出一个znj文件夹,需要在setting.py中手动激活app
创建数据库
同样在激活的虚拟环境下,用下面的命令,初始状态下的应用程序表将在数据库中被创建。
python manage.py migrate
然后会发现learning_log中多了一个db.sqlite3文件,这个就是数据库了。
检查项目是否成功创建
还是在激活的虚拟环境下输入
python manage.py runserver 0.0.0.0:8080
0.0.0.0 让其它电脑可连接到开发服务器,8080 为端口号。如果不说明,那么端口号默认为 8000。
打开浏览器,输入网址localhost:8000应该可以看到django的欢迎界面
Django配置
视图和URL配置
在先前创建的 learning_django 目录下的 learning_django 目录新建一个 view.py 文件,并输入代码:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
from django.conf.urls import url
from . import view
urlpatterns = [
url(r'^$', view.hello),
]
重新启动
我们也可以在urls中修改以下规则:
from django.urls import path
from . import view
urlpatterns = [
path('hello/', view.hello),
]
通过浏览器打开 http://127.0.0.1:8000/hello
path() 函数
Django path() 可以接收四个参数,分别是两个必选参数:route、view 和两个可选参数:kwargs、name。
语法格式:
path(route, view, kwargs=None, name=None)
- route: 字符串,表示 URL 规则,与之匹配的 URL 会执行对应的第二个参数 view。
- view: 用于执行与正则表达式匹配的 URL 请求。
- kwargs: 视图使用的字典类型的参数。
- name: 用来反向获取 URL。
Django2. 0中可以使用 re_path() 方法来兼容 1.x 版本中的 url() 方法,一些正则表达式的规则也可以通过 re_path() 来实现 。
from django.urls import include, re_path
urlpatterns = [
re_path(r'^index/$', views.index, name='index'),
re_path(r'^bio/(?P<username>\w+)/$', views.bio, name='bio'),
re_path(r'^weblog/', include('blog.urls')),
...
]