一:Python框架简介
Python中的框架有 Django:重量级的WEB框架,Tornado:异步框架,Flask:轻量级的WEB框架。
Django是一个开源框架,2005年发布,采用Python语言开发,早期是做新闻以及内容管理的网站。它提供了强大的后台管理系统。
Django的框架模式是-MTV模式。
M: Models层,模型层,负责数据库的建模以及CRUD操作。
T: Templates层,模板层,用于处理用户显示的内容,如HTML.
V: Views层,视图层,处理与用户交互的部分操作,从模型中获取数据,再将数据发送给模板,并显示给用户。
处理请求的流程:V->M->T
类比于我们Java中的MVC架构。对应关系:M---M,V---T,C---V。
学习Django框架除了官网文档外,还有一个中文网站可以方便查看: Django中文文档
Django的安装也比较简单,Linux下安装可以直接使用命令:sudo pip3 install django或者指定版本号 sudo pip3 install django==1.8
window下可以直接去官网下载安装包解压安装。大家根据需要自行安装。安装成功之后可以在idle-Python Shell中使用如下命令查看是否安装成功:import django django.VERSION
二:使用Django。
1:可以直接使用如下命令创建一个项目:django-admin startproject 项目名
我在window下一个空目录下通过dos窗口执行得到如下结果:
目录下自动创建了一个项目结构:
我们可以直接通过manage.py来启动这个项目:执行 python manage.py runserver
看到这个内容,说明已经启动了,可以通过:http://127.0.0.1:8000/来访问一下。
三:目录介绍
manage.py:
管理项目所用的命令集合,负责执行django中的各项操作文件。比如我们刚才启动项目所用的runserver,比如:创建管理员,创建应用,数据库同步操作等。
我们可以使用命令:python manage.py 查看可以使用的命令集。里面有我们刚才启动用到的runserver命令。
D:\pycharm\pycharm-profession\DjangoProject\firstDjango\firstDjango>python manage.py
Type 'manage.py help <subcommand>' for help on a specific subcommand.
Available subcommands:
[auth]
changepassword
createsuperuser
[contenttypes]
remove_stale_contenttypes
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
[sessions]
clearsessions
[staticfiles]
collectstatic
findstatic
runserver
与项目同名的有一个主目录,其下面有一些py文件:
_init_.py: 项目初始化文件,每次项目启动的时候都会自动执行,项目初始化的内容可以写在这里面。
urls.py : 项目的基础url(路由)配置文件,所有的访问路径都配置在这里。
wsgi.py: 应用服务器配置,当真正部署到服务器的时候会用到这个配置。
settings.py : 项目的主配置文件,里面可以看到有:
BASE_DIR属性,取的当前项目的根目录路径。
DEBUG调试模式,开发建议为True,上线建议为False.
ALLOWED_HOSTS 设置允许访问本项目的地址列表,如果不设置的话,只能本机访问。推荐写*.(局域网内都可以访问)
INSTALLED_APPS:指定已安装的应用,如果有自定义应用的话,需要在此位置进行注册。
MIDDLEWARE:指定注册的中间件
ROOT_URLCONF: 指定项目的基础路由配置文件指定就是:urls.py
TEMPLATES:指定模板信息。
DATABASES: 指定数据库信息。
LANGUAGE_CODE: 指定网站的显示语言,默认英文:'en-us' ,使用中文的话使用:zh-Hans
TIME_ZONE:时区,改为中国的为:Asia/Shanghai
但是我把语言设置为中文的时候直接改 LANGUAGE_CODE = 'zh-Hans',启动的时候报错,说没有这个语言。 可以通过如下操作解决。
在settings.py头部引入如下包,再在语言设置上面添加LANGUAGES即可。修改完项目自己会重新启动,然后访问,页面就会变成中文的了。
from django.utils.translation import gettext_lazy as _
LANGUAGES = [
('zh-Hans', _('Chinese')),
]
四:URL的使用
urls.py: 默认是在主目录中,主路由配置文件,会包含最基本的地址映射。每个映射到达之后,都会由urls.py中的urlpatterns列表中的url()或pyth()进行匹配,匹配上之后可能把请求转交给其他url.py或者试图(Views)去处理。
我们建一个简单的视图来访问一下。在主目录下新建一个views.py文件。
from django.http import HttpResponse
#编写视图处理函数,一个函数相当于是一个视图
def run_views(request):
return HttpResponse("<h1>第一个响应</h1>")
然后在url.py中配置如下映射。注意我们这里调用函数本身,函数并没有写括号。这样我们可以通过:http://127.0.0.1:8000/run/ 请求到我们定义的方法。
from .views import run_views
urlpatterns = [
path('admin/', admin.site.urls),
path('run/', run_views),
]
结果: