django入门

来源:互联网 发布:服务器端口打不开 编辑:程序博客网 时间:2024/04/29 12:19

学习资源:慕课网(django初体验)

Django是最流行的Python Web开发框架之一,负责处理大量的web开发底层细节,我们可以专注于开发web应用,避免重复制造轮子

为什么用Django?

  1. 快速开发:用Python开发,数据库ORM系统,不用使用SQL语句,使用Python数据库对象来访问数据库
  2. 大量内置应用:包含已有的后台管理系统,用户认证系统和会话系统
  3. 安全性高:表单验证,SQL注入,跨站点攻击
  4. 易于拓展

tip:
关于ipython,之前一直不知道ipython是做什么的,今天尝试pip安装了一下。我是在pycharm上面直接安装的。发现安装了之后并没有跟之前有什么区别,因为在pycharm自带的console里面,如果使用函数原本就是有提示的。那么为什么说ipython提高了调试代码的效率呢?

后来我尝试了一下在命令行里面打开Python的对话框,发现在使用了ipython之后会有提示:s.之后点Tab键出现提示,按上下左右选择使用哪个函数
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 renderfrom django.http import HttpResponse# Create your views here.def hello(request):    return HttpResponse('<html>hello world</html>')

接下来需要将我们的页面映射到一个URL上面去,这个时候就需要找到urls.py这个文件进行修改:

"""mysite URL ConfigurationThe `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 urlfrom django.contrib import adminfrom blog.views import hellourlpatterns = [    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访问的实质:

  1. 客户发送http请求到web服务器
  2. web服务器返回html页面给客户
  1. URL配置:建立URL与相应函数之间的关系urls.py
  2. 视图View:views.py处理用户的http请求,进行逻辑处理,返回用户页面
  3. 模型Models:描述服务器存储的数据(数据库的表)
  4. 模板templates:用来生产HTML页面,返回给用户的html,是由数据(模型)和模板渲染出来的。

课程结束~

0 0