【第一天】django快速开发——环境部署、表单、数据库操作、模板、文件学习

安装django



1、安装 setuptools

yum install python-setuptools

2、完成之后,就可以使用 easy_install 命令安装 django

easy_install django

注意:django对于pip和setuptools的版本有严格要求,如果不想那么麻烦建议直接装个python3.6

django管理命令



django-admin.py

这是django的管理命令,无论在哪个目录都可以用这个命令来对project或app做操作

最常用的命令总结如下:

1、创建一个项目

django-admin startproject [name]

2、创建一个app

django-admin startapp [name]

project和app的概念:

在django中一个project中涵盖了很多个app,这些app用来实现一些可以复用的功能。这样当我要使用实现一个曾经实现过的功能时候就可以调用这个app。

manage.py

这个命令用来启动某个项目的uwsgi服务,命令如下:

python manage.py runserver 0.0.0.0:8000

什么是uwsgi?

uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。

django文件介绍



关于urls.py文件

此文件使用来定义可显示的视图信息。相关代码如下:

以上信息我放了一些我自己的代码上去

url()介绍

这个函数的作用是用来指向路由信息,url(a, b.c.[d])。其中该的a使用正则表达式表示的路由名字,比如上图中的url(r'^search'.....表示访问网址的时候可以通过127.0.0.0:8000/search来访问。正则表达式中^表示以search为开头的行,$表示以search为结尾的行。

其中的d,是一个可选项,表示name。简单说,name 可以用于在 templates, models, views ……中得到对应的网址,相当于“给网址取了个名字”,只要这个名字不变,网址变了也能通过名字获取到。

其中的b代表着你写的python文件,c代表着你python文件中的函数。

注意

启动django后,不能访问,报400错误。

原因:没有开启允许访问

处理:编辑HelloWorld目录下setting.py ,把其中的

ALLOWED_HOSTS=[]改成ALLOWED_HOSTS=['*'] ##* 表示任意地址。

django模板



模板是django实现mvc思想中重要的一环

如何使用模板

1、在html前端文件中定义变量

2、在settings.py中定义模板文件的路径

修改HelloWorld/HelloWorld/settings.py

3、修改view.py文件,添加一个新对象,用于向模板中提交数据

view.py是自己定义的,并非系统生成的

关于render()方法

一旦你创建一个 Template 对象,你可以用 context 来传递数据给它。 一个context 是一系列变量和它们值的集合。hello.html表示传值目标对象。request是一个固定参数,表示用request方式来传输。

4、context 字典中元素的键值 "hello" 对应了模板中的变量 "{{ hello }}"。再访问访问 http://127.0.0.1:8000/hello,可以看到页面

模板标签



1、判断

{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not )

(1)

{% if condition %}
     ... display
{% endif %}

(2)

{% if condition1 %}
   ... display 1
{% elif condition2 %}
   ... display 2
{% else %}
   ... display 3
{% endif %}

2、循环

例如,给定一个运动员列表 athlete_list 变量,我们可以使用下面的代码来显示这个列表

<ul>
{% for athlete in athlete_list %}
    <li>{{ athlete.name }}</li>
{% endfor %}
</ul>

反向迭代

{% for athlete in athlete_list reversed %}
...
{% endfor %}

嵌套

{% for athlete in athlete_list %}
    <h1>{{ athlete.name }}</h1>
    <ul>
    {% for sport in athlete.sports_played %}
        <li>{{ sport }}</li>
    {% endfor %}
    </ul>
{% endfor %}

3、ifequal/ifnotequal 标签

比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。

{% ifequal user currentuser %}
    <h1>Welcome!</h1>
{% endifequal %}

4、注释

{# 这是一个注释 #}

5、过滤器

模板过滤器可以在变量被显示前修改它,过滤器使用管道字符

将my_list中的第一个元素转化为大写

{{ my_list|first|upper }}

只显示bio参数的开始30个元素

{{ bio|truncatewords:"30" }}

6、include标签

{% include %} 标签允许在模板中包含其它的模板的内容。

{% include "nav.html" %}

模板继承

1、创建一个模板文件html

继承使用的标签是mainbody,继承者们可以替换掉其中的部分。block标签用来告诉模板引擎,紫陌版可以重载这些部分。

2、hello.html 中继承 base.html,并替换特定 block。其中要指定extends标签来指定父文件。

操作数据库



django对数据库的操作方面我认为是最麻烦的,对此我还是青睐于flask中导入一个库再通过sql查询的方法。虽然很麻烦,但是它能够支持很多个数据库包括:PostgreSQL、MySQL、SQLite、Oracle,所以从这点上看还是可圈可点的。

环境准备

1、安装驱动

首先需要安装数据库的驱动,mysql为例需要安装mysqlclient

python3 -m pip install mysqlclient

2、配置settings.py文件

3、创建APP

Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app

django-admin.py startapp TestModel(在项目的文件夹里面)

之后就会出现一个TestModel的文件夹

HelloWorld
|-- TestModel
|   |-- __init__.py
|   |-- admin.py
|   |-- models.py
|   |-- tests.py
|   `-- views.py

其中的models文件主要用来定义模本文件的信息。我们修改这个文件

其中的Test代表数据库的表名,name代表列名,charfield类似于varchar类型,max_length表示最大的长度为20个字节。

4、添加APP到settings.py

5、应用模板的变更

之后输入一下命令来应用app中定义的变更

$ python manage.py migrate   # 创建表结构
$ python manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel   # 创建表结构

你的数据表就创建好了

插入数据

1、添加一个python工作文件如testdb.py

插入数据使用

test1 = Test(name='runoob')
test1.save()

2、定义urls.py

数据查询

数据查询方法总结

1、使用过滤器,相当于where

Test.objects.filter(id=1)

2、获取单个对象,相当于where

Test.objects.get(id=1)

3、排序,相当于orderby

Test.objects.order_by("id")可以连锁使用Test.objects.filter(name="runoob").order_by("id")

4、获取所有数据,相当于select * from

list = Test.objects.all()

更改数据

更改数据使用save(),或者update()

删除数据

调用delete()即可

django处理表单



html表单是前后端交互的重要手法

GET方法

1、前端定义表单,采用get方法,以下是search_form.html

2、穿件python工作文件search.py(名字无所有)

采用request.GET方法获取前端传递的数据

3、定义路由

POST方法

1、创建前端文件,注意post方法必须要使用csrf_token标签。csrf 全称是 Cross Site Request Forgery。这是Django提供的防止伪装提交请求的功能。POST 方法提交的表格,必须有此标签。

rlt标签表示表格处理的处理结果预留位置

2、创建一个python文件来处理表单请求

注意



执行search请求 响应,出现错误 ,中文解析不了:

'ascii' codec can't decode byte 0xe4 in position 0: ordinal not in range(128)

解决办法,添加如下代码到 search.py

import sys  
reload(sys)
sys.setdefaultencoding('utf8')

原文地址:http://blog.51cto.com/12814931/2123622

时间: 2024-10-24 23:09:18

【第一天】django快速开发——环境部署、表单、数据库操作、模板、文件学习的相关文章

Django框架开发中避免表单重复提交

Form表单做为web2.0时代的重要角色,也是我们与web网站进行数据交互的重要渠道,但是大家在web网站开发过程中,都会遇到一个问题,那就是如何避免表单重复提交,我们可不确定用户可在提交了一个表单后,是否有足够的耐心等待我们的程序加载完成,如果此时用户不耐烦的在前台重复刷新页面,那么就会造成数据重复提交.信息不准确,因此我们在程序设计时一定要规避这样的问题,接下来介绍一下在Django框架开发中如何避免此问题. 首先说明一下Http协议中两种非常常见的方法GET和POST. 1.GET方法往

基于Django快速开发可定制的办公系统实战(1):Git的使用

基于Django快速开发可定制的办公系统实战(1):Git的使用 ?为什么在项目的开篇要介绍下git的使用呢?俗话说:"工欲善其事,必先利其器",git工具就是项目开发的必备利器,尤其是在多人协作开发环境中.使用git工具可实现分布式的版本控制,可在服务端和本地创建一个版本库. ?脑图是本文的"脊椎",了解个大概后,再通读本文,再加上实际的操作,效果会更好,那我们就开始吧! 1 Git工具安装 Windows版本安装: 安装包下载地址:https://gitforw

python中django项目上线环境部署

django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚本正常使用 4 确认用户环境变量配置文件,有virtualenvwrapper.sh的四行配置 WORKON_HOME=~/Envs VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages' VIRTUALENVWRAPPER_PYTHON=/op

Java3D 集成开发环境部署与配置(含实例)

Java 3D开发相关的准备: 第一:下载Java 3D库 参考网址一:https://java3d.java.net/ 参考网址二: http://translate.google.com/translate?hl=zh-CN&rurl=translate.google.com.hk&tl=zh-CN&u=http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-j

【Smobiler企业APP开发之一】开发环境部署

最近研究了下Smobiler-.net移动开发,对于做企业APP开发Smobiler还是够用的,况且是完全使用C#进行编程,对于使用C#进行程序设计的程序员来说还是很容易上手的. 本章节主要介绍Smobiler开发环境部署问题 由于Smobiler是.net移动开发,那么开发工具首选当然是Visual Studio了,Smobiler的最低要求是Visual Studio 2010及以上版本,.net framework 3.5以上,所以需要先确保电脑上已经安装了Visual Studio和.n

J2EE分布式框架之开发环境部署(下)

本篇继续为大家讲解J2EE分布式框架的开发环境部署: Eclipse中配置maven安装目录和Setting文件加载的本地库目录 11.导入Maven项目 File>Import>Existing Maven Projects>下一步 选择你本地的maven项目(请选中jeesz-project根目录),点击确定 加载出来所有项目后,点击finish完成 提醒:这个导入的过程要一段时间,因为我本地连接网络,所以会从远程中央库下载项目所需要的所有的jar包,请大家耐心等候. 如果你使用了本

JEESZ分布式框架之开发环境部署(下)

本篇继续为大家讲解J2EE分布式框架的开发环境部署: 10.  Eclipse中配置maven安装目录和Setting文件加载的本地库目录 11.导入Maven项目 File>Import>Existing Maven Projects>下一步 选择你本地的maven项目(请选中jeesz-project根目录),点击确定 加载出来所有项目后,点击finish完成 提醒:这个导入的过程要一段时间,因为我本地连接网络,所以会从远程中央库下载项目所需要的所有的jar包,请大家耐心等候. 如果

eclipse+hbase开发环境部署

一.前言 1. 前提 因为hbase的运行模式是伪分布式,需要用到hdfs,所以在此之前,我已经完成了hadoop-eclipse的开发环境搭建,详细看另一篇文章:hadoop开发环境部署——通过eclipse远程连接hadoop2.7.3进行开发,本篇的目的是在windows端部署开发环境,使之能连上服务端进行运行测试. 2. 环境 服务端系统:centos6.5 hadoop版本:2.7.3 java版本:1.8 hbase版本:1.2.6 eclipse版本:juno,4.2.0(wind

【J2EE】Struts2+Tomcat开发环境部署,“Hello World”的实现

1.在官网下载Struts2的开发包 下载链接如下: http://120.203.229.30/5ff/2bc79/5ff16ae8698e1c321758a8f03a1bc0939892bc79/struts-2.3.16.3-all.zip?n=struts-2.3.16.3-all.zip http://mirrors.cnnic.cn/apache//struts/documentation/struts-2.3.16.3-docs.zip http://mirrors.cnnic.c