Django快速入门

Django一个基于Python的Web开发框架。

同时也是全国使用最多的Python开发框架,相对Flask之类的较重,但是文档稳定而社区活跃。

由于Django是在一个快节奏的新闻编辑室环境下开发出来的,因此它被设计成让普通的网站开发工作变得简单而快捷。

我只是个Python初学者,之前有一部分利用其它语言开发网站的经验,本系列属于我个人的入门篇,会尽可能的写下基于Windows平台(我也知道在win上py好坑,但是项目没办法…)的入门教程,我会尽可能快的更新。

但介于我自己就是个新手~所以如果有问题请大家指出,马上改。

如果各位前辈有各种疑问,都可以给我留言~~~♪(^∇^*)

这篇文章是对于Django的安装教程。 我们需要的工具。 - python(我用的是2.7,对了,我是直接使用的Anaconda) - ipython/bpython(命令行增强工具,主要是为了使用shell) - pip - mysql等数据库 - 开发环境我是装的PyCharm

Linux环境下

(如果权限不够请使用sudo,如果用户不在sudo组请是哟su命令切换用户并进行用户进组的添加)
  1. 一般Python已经安装(如果没有安装使用,ubuntu下的apt-get install 进行安装)
  2. 有可能也已经安装上了,安装pip(apt-get install python-pip
  3. 一般ipython也有可能装上了,没安装接着安装
  4. 直接使用命令pip install Django==1.9.7进行安装,如果安装不成功则使用步骤五进行安装
  5. 在git上下载其源码,下载地址
  6. 下载在本地之后,cd 进此下载目录,执行python setup.py install进行安装 安装完成.PNG 安装完成。

Windows下的安装

Python下载和pip等安装大同小异,所以在此不再繁述。但是需要将此Python的路径放入系统的Path路径中(到处都是教程,百度一下就好)。
  • 安装完毕环境之后,也是下载其源码 下载在本地之后,cd 进此下载目录,执行python setup.py install进行安装 安装完成.PNG 安装完成。
  • 需要将Django的bin路径也添加入系统变量中(这个目录实在Python的lib目录中的site-package中的Django的bin ),才能使用django-admin命令新建项目。

测试

  • 找到自己的一个空目录作为项目目录,再此目录上键入django-admin.py startproject mysite,则建立好一个简单的项目名为mysite的项目。
  • 进入 mysite文件夹中,使用python manage.py进行帮助的查看。
  • 使用python manage.py runserver开启应用。

开启应用.PNG

已经在前一篇搭建好了Django的环境,可以以一个小应用进行Django的入门。 - ## 测试搭建好的开发环境 使用python manage.py runserver开启应用 因为默认开启的是本机的 127.0.0.1:8000 IP和端口,那么打开浏览器键入地址之后可见。

安装完默认界面.PNG

话说这个Markdown编辑器的图片上传功能不错~

同时在命令行窗口也接到了一个Get请求 命令行服务器状态.PNG

如果不知道什么是Get/Post的话,请点击,一点关于RESTful的知识

  • 开始开发新应用

  • 每个Django都是遵守约定且包含一个Python包。 Django自带一个工具,它可以自动生成应用的基本目录结构,这样你就能专心于书写代码而不是创建目录。

首先我们需要建立一个应用。python manage.py startapp learn 什么是应用,应用和服务器有什么关系。

应用是一个Web应用程序,它完成具体的事项 —— 比如一个博客系统、一个存储公共档案的数据库或者一个简单的投票应用。 项目是一个特定网站中相关配置和应用的集合。一个项目可以包含多个应用。一个应用可以运用到多个项目中。 p.s:上面的话来自于http://python.usyiyi.cn (^o^)/~ 开发服务器会根据需要自动重新载入Python代码。 你不必为了使更改的代码生效而重启服务器。 然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。

  • 为什么手贱关掉浏览器,好不容易打了那么多字都木有了呢……/(ㄒoㄒ)/~~我辛辛苦苦撸的字啊……(╯‵□′)╯︵┻━┻*

重新写吧……

那么开始开发我们自己的一个博客系统 1. 初始化一个project - win+r,运行cmd,进入你需要建立的目录,键入django_admin.py startproject blog

2.初始化一个app - cd命令进入blog文件夹,键入命令 python startapp myapp

3.进入blog/setting.py配置 - 如图: INSTALLED_APPS.PNG

  1. 新建Models
  2. 我们简历最基础的博客系统,建立一个Article类,只需要title,content,date,具体代码如图: ArticleModels.PNG p.s unicode方法主要是为了在界面上返回值是文章的主题,而不是自身的类型,可以不需要此函数。

  3. 自动建立表

  4. python manage.py migrate命令。 ArticleModels.PNG 具体的模型操作修改如下
    • 模型

      模型的编写,主要是对于数据库的修改,在Django中,默认使用SQLite,主要分为三步:
  5. 修改你的模型(在learn/models.py文件中)。
  6. 运行python manage.py makemigrations ,为这些修改创建迁移文件。
  7. 运行python manage.py migrate ,将这些改变更新到数据库中。

  8. 自动建立后台系统

  9. python manage.py createsuperuser这个命令就可以获得一个功能强大的后台管理系统,并且此系统一开始会让你输入用户名与密码等(这里密码需要选择比较复杂的8位以上,否则如图:) 
![Uploading python manage.py migrate_355166.PNG . . .]

  10. 注册此Article的后台

  11. myapp.py中,新增代码 from django.contrib import admin from .models import Article admin.site.register(Article)

8.start server python manage.py runserver And then u can see this blog's controller . Enjoy it.

p.s It's not a normal project, I will complete it as soon as possible.Thx.

GET/POST是最常见的使用HTTP请求,作为HTTP请求: - GET是明文显示的,位于网址之后,一般形式为:www.xxx.com/?id=1&value=100这样的形式。 - POST是一般是发送一个表单,数据等使用的方法。 - 我知道一般开始学Django这些基础知识肯定是比我好了不少,所以这里不再赘述这些基础知识,如果有需要,请移位至W3C SCHOOL

  1. 我们通过一个简单的小程序进行Get的获取
  2. cd 进入你需要建立项目的目录中
  3. 使用django-admin.py startproject learn20160711新建工程
  4. 使用python manage.py startapp learn新建一个应用
  5. 使用PyCharm打开工程。将定义的app加到settings.py中的INSTALL_APPS中。 将learn插入.PNG ^(* ̄(oo) ̄)^:如果不加到 INSTALL_APPS 中的话, django 就不能自动找到app中的模板文件(app-name/templates/下的文件)和静态文件**(app-name/static/中的文件)

  6. 打开learn中的view层,我们写一个简单的加法函数,如下图: 02views.PNG 注:此函数中request.GET['a']这句话就是获得GET的值,将Get看做是在request下的一个数组,而‘a’是一个键,则request.GET['a']对于的就是通过Get方式发送的a的值

  7. 打开位于learn20160711的urls.py,键入一条路由记录(正则表达式请参见我的另一篇笔记正则表达式基本入门

02urls.PNG

4.让我们在cmd中运行此网站。python manage.py runserver服务启动,输入网址http://127.0.0.1:8000/add/1/1/得到结果11……为什么是11呢,因为我们传输过去的数据被解析成了字符串,所以是连接状态的。如果想为int,则加上转换就可以完成(转换之后结果如下图……好二)。 02结果.png

  1. 那么我们总结一下,通过对于View和Urls的改写,可以完成对于路由的控制,那么同样的,在VIew不只是可以通过Http.req返回值,也可以通过模板系统调用HTML页面。详见下一篇文章。~(≧▽≦)/~

此篇文章主要讲述了: - Django的 View,和其模板显示 - Session的使用 - 表单与Post传递值

和之前一样,本文主要通过一个小程序的栗子来给大家展示。 - 这个例子主要是现了用户登录功能 - 在用户登录之后页面上显示登录成功与用户名 - 将用户信息记录进SESSION

以下就是栗子~ 1. 打开CMD,cd进入项目目录 2. django-admin.py startproject learn20160712 新建一个项目工程并cd进入 3. python manage.py startapp learn新建一个应用 4. 在Setting.py中添加learn这个应用 5. 打开learn/views.py增加一个方法: from django.shortcuts import render def home(request): return render(request, 'home.html') 6. Django 模板系统,在app下面的templates文件夹中的模板文件。在learn下建立一个templates的文件夹,在其下建立一个home.html,里面内容为我们的登录界面。 03homehtml.PNG 将method改写成GET之后就可以通过上一节写过的Get获取值的办法来获得表单中的值。

  1. 编辑url,代码与正则如下:

03urls.PNG

  1. 尝试使用python manage.py runserver启动服务,浏览器输入http://127.0.0.1:8000/home/显示界面如下图:

03home.PNG

接着来进行Post的传值方式

  1. 我们来重写判定方法。首先更改home.html<form method="post">那么在views.py中,我们重写home方法,通过对其request.method的方法方式进行判定,来控制是执行显示还是执行对于数据的处理。代码如下(此代码中导入的From代码在步骤11处):

03home重写.PNG

  1. 我们需要在learn下,建立一个forms.py,使用Django的Forms类,代码如下: from django import forms class Form(forms.Form): username = forms.CharField() password = forms.CharField()

  2. 同样,将模板home.html也改为:

03home重写.PNG

  1. 运行服务器,输入除去admin与admin的话,返回yaer,以外的值,返回warning。done!

03test.PNG

链接