学习资源:慕课网(django初体验)
Django是最流行的Python Web开发框架之一,负责处理大量的web开发底层细节,我们可以专注于开发web应用,避免重复制造轮子
为什么用Django?
- 快速开发:用Python开发,数据库ORM系统,不用使用SQL语句,使用Python数据库对象来访问数据库
- 大量内置应用:包含已有的后台管理系统,用户认证系统和会话系统
- 安全性高:表单验证,SQL注入,跨站点攻击
- 易于拓展
tip:
关于ipython,之前一直不知道ipython是做什么的,今天尝试pip安装了一下。我是在pycharm上面直接安装的。发现安装了之后并没有跟之前有什么区别,因为在pycharm自带的console里面,如果使用函数原本就是有提示的。那么为什么说ipython提高了调试代码的效率呢?
后来我尝试了一下在命令行里面打开Python的对话框,发现在使用了ipython之后会有提示:s.之后点Tab键出现提示,按上下左右选择使用哪个函数
我觉得只要装好了pycharm就不用ipython了,毕竟目前哈没有发现它其他的功能,以后发现了再补充。
安装Django:
成功安装:django-1.10.4
还有一种“源码安装”的方式,太复杂了,没尝试,pip大法好,嘿嘿
创建第一个django项目
我是直接在pycharm的Terminal里面创建的:
只需要一行命令:
django-admin startproject mysite
// mysite是自己给应用起的名字
这个时候,在我们执行命令的文件夹下,就会多出一个叫mysite的文件夹,自己去看哈,不贴图了
接下来,激动人心的时刻,开启我们的网站:
依然是在pycharm的Terminal,cd到我的mysite文件夹下,执行命令:
python manage.py runserver
出现上述结果之后,我们在浏览器中打开网站:
当当当当,成功!
django创建工程及应用1
了解创建一个django工程后,文件夹中各文件用途:
- manage.py:管理项目——包括数据库建立、服务器运行、测试……
在mycite文件夹下,在console中输入命令:
python manage.py
结果输出了所有manage.py的管理功能:
tip:
在启动服务器的时候,我们可以自己指定端口。比如想让其他的网站也能访问到我们的网页,那么可以更改命令:
python manage.py runserver 0.0.0.0:8080
这个时候,我们就是使用8080端口来访问服务器了:
其实对于网络这块我也不是很懂,先这样写下来,日后发现理解错误了之后再修改。
再尝试一个命令:
python manage.py shell
这时候,由于我们之前安装了Ipython,所以直接进入到了Ipython的交互式命令行里面,方便我们调试。
- mysite/mysite/settings.py:整个文件的配置
- mysite/mysite/urls.py:URL映射配置文件
- mysite/mysite/wsgi.py:Python应用程序或框架和Web服务器之间的接口,一般初学者是不需要用的。当网站上线的时候,需要和大型服务器之间有一个接口,目前还不需要了解这方面的内容。
django创建工程及应用2
举个例子:
创建一个blog应用:
cd 到mysite文件夹下:
python manage.py startapp blog
这时候,去观察一下目录的变化,mysite文件夹下面多了一个blog文件夹。
接下来,编辑settings.py文件,将我们创建的应用添加到配置文件中:
这个时候想要输出一个hello world页面:
首先要找到blog下面的views.py文件,添加代码:
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def hello(request):
return HttpResponse('<html>hello world</html>')
接下来需要将我们的页面映射到一个URL上面去,这个时候就需要找到urls.py这个文件进行修改:
"""mysite URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.10/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from blog.views import hello
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^helloworld/', hello)
]
解释:
#两个重点的地方
from blog.views import hello
#引入我们博客视图中返回页面的函数
url(r'^helloworld/', hello)
#将根目录下面的helloworld这个URL映射到hello函数返回的页面中
最后,将我们的应用添加到mysite中来:
找到settings.py文件:
添加:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',#添加的内容
]
大功告成,启动服务器:
运行结果:
(关于上面步骤补充一点,在pycharm中编写的时候,有一些代码会标红,但是实际运行结果是正确的,所以我们先不用管这些细节,能正常运行就好)
下面来看一下我们的应用blog创建的文件中,各个文件的含义:
- views.py:相应客户需求返回的HTML页面。也就是我们刚刚调用hello函数,返回一个hello world页面,所有的页面视图都在这里完成
- models.py:定义数据库中的表
- admin.py:admin应用,自带
- test.py:测试相关
目前最重要的还是前两个文件。
哒哒哒,目前为止,算入门了?
django逻辑概念总结
概念:
一次Web访问的实质:
- 客户发送http请求到web服务器
- web服务器返回html页面给客户
- URL配置:建立URL与相应函数之间的关系urls.py
- 视图View:views.py处理用户的http请求,进行逻辑处理,返回用户页面
- 模型Models:描述服务器存储的数据(数据库的表)
- 模板templates:用来生产HTML页面,返回给用户的html,是由数据(模型)和模板渲染出来的。
课程结束~