django搭建web小项目

Gwendolyn62 等级 641 0 0

创建项目

原文1:http://blog.csdn.net/yjx2323999451/article/details/53200243

原文2:http://www.cnblogs.com/benshan/p/4445074.html

原文3:http://www.runoob.com/django/django-first-app.html

--------------------------------------------------------------------------------------

连接mysql数据库

原文4:http://www.cnblogs.com/yangmv/p/5327477.html

原文5:http://www.cnblogs.com/taiguyiba/p/6058315.html

原文6:http://www.jb51.net/article/42870.htm

前提:

配置好python+django环境

1创建web服务器

使用cmd命令进入到存放项目的目录中执行以下命令:

python django-admin.py startproject mysite

成功后会在目录中出现 mysite 目录,此处创建的为开发服务器

2创建app:

一个项目中包含一个或多个这样的app。app可以理解为一块功能集合。比如产品管理模块就包含增删该查等功能,可以把产品管理叫做一个app。每个Django app都有独立的models,views等,易移植和被复用

使用cmd命令进入到mysite目录下(创建的web服务器目录)执行以下命令

python manage.py startapp test_pr

test_pr才是web应用程序

3创建模板文件的目录

在项目根目录下新建一个templates目录

4目录文件说明

子目录mysite下表示工程的全局配置,分别为setttings.py、urls.py和wsgi.py,其中setttings.py包括了系统的数据库配置、应用配置和其他配置,urls.py则表示web工程Url映射的配置。

子目录test_pr则是在该工程下创建的app,包含了models.py、tests.py和views.py等文件

templates目录则为模板文件的目录

manage.py是Django提供的一个管理工具,可以同步数据库等等

-----------------------------------------------------------------------------------------------------------------------------------------------

Django 里更关注的是模型(Model)、模板(Template)和视图(Views),Django 也被称为 MTV 框架 。

在 MTV 开发模式中:

M 代表模型(Model),即数据存取层。该层处理与数据相关的所有事务:如何存取、如何确认有效性、包含哪些行为以及数据之间的关系等

  T 代表模板(Template),即表现层。该层处理与表现相关的决定:如何在页面或其他类型文档中进行显示。

  V代表View,业务逻辑层。这一层包含访问模型的逻辑和按照模板显示。你可以认为它是模型和模板的桥梁。

系统对app有一个约定:如果你使用了Django的数据库层(模型),你 必须创建一个django app。模型必须在这个app中存在。

5启动

在cmd中进入项目目录(cd d:*/mysite ),执行以下命令:

python manage.py runserver 0.0.0.0:8000

在浏览器中输入 127.0.0.1:8000,若能成功访问则表示启动成功

6添加web工程页面

打开test_pr/views.py文件,输入以下内容

from django.http import HttpResponse


def sayHello(request):
    s = 'Hello World!'
    current_time = datetime.datetime.now()
    html = '<html><head></head><body><h1> %s </h1><p> %s </p></body></html>' % (s, current_time)
    return HttpResponse(html)

7url映射的配置

打开url.py文件

from django.conf.urls import url
from test_pr import views

urlpatterns = [
    # url(r'^admin/', admin.site.urls),
    url(r'^$', views.sayHello),
]

重启服务,访问http://localhost:8000/

8逻辑和页面分离

8.1在模板目录下创建一个student.html文件,并写入以下代码

<!DOCTYPE html>
<html>
   <head>
        <title>hello</title>
   </head>
 <body>
      <ul>
          {% for student in students %}
          <li>
             id:{{ student.id }},姓名:{{ student.name }},age: {{ student.age }}
         </li>
         {% endfor %}
     </ul>
 </body>
</html>

8.2修改 views.py文件,添加方法showStudents()

 def showStudents(request):
     list = [{id: 1, 'name': 'Jack'}, {id: 2, 'name': 'Rose'}]
     return render_to_response('student.html',{'students': list})

8.3.添加url映射,打开url.py文件

from django.conf.urls import url
from test_pr import views

urlpatterns = [
    # url(r'^admin/', admin.site.urls),
    url(r'^$', views.sayHello),
    url(r'^showStudents$', showStudents),
]

8.4.修改settings.py模板配置:'DIRS': [BASE_DIR+r'\templates'],

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/templates", ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

8.5.重启服务,访问http://localhost:8000/showStudents,出现:

django搭建web小项目

原文:http://code.ziqiangxuetang.com/django/django-models.html

9.连接数据库

首先需要安装数据库驱动啦,即mysql_python,

如果你没安装 mysql 驱动,可以执行以下命令安装:

pip install mysqlclient

9.1配置数据库连接,打开settings.py文件编写代码

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', //数据库的类型  
        'NAME': 'mysite', //所使用的的数据库的名字
        'USER': 'root', //数据库服务器的用户  
        'PASSWORD': '123456',   //密码  
        'HOST': 'localhost', //主机  
        'PORT': '3306',   //端口 
    }
}

修改完后进入DOS进入项目目录下执行python manage.py shell命令启动交互界面输入一下代码验证数据库配置是否成功。没报错则成功!

>>> from django.db import connection

>>> cursor = connection.cursor()

10.创建模型

在Django中使用数据库布局的第一步是将其表述为Python代码。

文件中每个class相当于单个数据库表,每个属性也是这个表中的一个字段。 属性名就是字段名,它的类型(例如 CharField )相当于数据库的字段类型 (例如 varchar )。

10.1打开test_pr目录下的models.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models


# Create your models here.
class Student(models.Model):

     name = models.CharField(max_length=20) 

字段

1、models.AutoField  自增列= int(11)
  如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。
2、models.CharField  字符串字段
  必须 max_length 参数
3.models.DateField  日期类型 date
  对于参数,auto_now =True则每次更新都会更新这个时间;auto_now_add 则只是第一次创建添加,之后的更新不再改变。
4.models.DateTimeField  日期类型 datetime
  同DateField的参数
5.models.EmailField  字符串类型(正则表达式邮箱)=varchar
  对字符串进行正则表达式
6.models.FloatField  浮点类型= double
7.models.IntegerField  整形
8.models.SmallIntegerField  数字
  数据库中的字段有:tinyint、smallint、int、bigint
9、models.TextField  字符串=longtext
10、models.TimeField  时间 HH:MM[:ss[.uuuuuu]]
11、models.URLField  字符串,地址正则表达式
12、models.BinaryField  二进制
13、models.ImageField图片
14、models.FilePathField文件 

参数

1、null=True
  数据库中字段是否可以为空
2、blank=True
  django的Admin中添加数据时是否可允许空值
3、primary_key =False
  主键,对AutoField设置主键后,就会代替原来的自增 id 列
4、auto_now 和 auto_now_add
  auto_now 自动创建---无论添加或修改,都是当前操作的时间
  auto_now_add 自动创建---永远是创建时的时间
5、choices
GENDER_CHOICE =(
(u'M', u'Male'),
(u'F', u'Female'),
)
gender = models.CharField(max_length=2,choices = GENDER_CHOICE)
6、max_length
7、default  默认值
8、verbose_name  Admin中字段的显示名称
9、name|db_column  数据库中的字段名称
10、unique=True  不允许重复
11、db_index =True  数据库索引
12、editable=True  在Admin里是否可编辑

11. 激活 模型

打开settings.py 文件,找到 INSTALLED_APPS 设置,NSTALLED_APPS 告诉 Django 项目哪些 app 处于激活状态

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'test_pr',
)

12.将新建的models同步数据库

# Django 1.7 及以上的版本需要用以下命令

-----------------------------------------------------------------------------------------------------------------

步骤里面第一步将会在查询当前MySQL和本地的models的差异,生成合并的代码。

第二步是将合并代码导入数据库。

cmd进入项目目录执行以下命令:

python manage.py makemigrations
python manage.py migrate

# Django 1.6.x 及以下

----------------------------------------------------------------------------------------------------------------

用下面的命令对校验模型的有效性:

python manage.py validate

看到 0 errors found 消息,一切正常。继续:

运行下面的命令来生成 CREATE TABLE 语句:

python manage.py sqlall test_pr

sqlall 命令并没有在数据库中真正创建数据表,只是把SQL语句段打印出来。

运行 syncdb 命令创建表

python manage.py syncdb

--------------------------------------------------------------------------------------------------------

所有的数据库查找都遵循一个通用模式:调用模型的管理器来查找数据。

13.models对数据库增删查改

原文:http://python.usyiyi.cn/translate/django_182/ref/models/instances.html

打开models.py文件

方式一:

from django.db import models

class Student(models.Model):
    name= models.CharField(max_length=20)

    @classmethod
    def create(cls, name
        student = cls(name=name)
        # do something with the book
        return student 

student = Student.create("zhansan")

方式二(推荐):

from django.db import models

# Create your models here.
class Student(models.Model):
    # 如果没有models.AutoField,默认会创建一个id的自增列
    name = models.CharField(max_length=20)
    # model的字符串表现形式
    def __unicode__(self):
        return self.name
    objects = StudentManager()

class StudentManager(models.Manager):

    def create_student(self, name):
        student = self.create(name=name)
        # do something with the book
        return student

原文: https://my.oschina.net/leeyd/blog/367688

增:create()

objects.create(name = 'test') # 新增name字段的值为test

删:delete()

objects.all().delete() # 删除表中全部数据

objects.get(aa='test').delete() # 删除一条aa等于'test'的数据

objects.filter(aa='123').delete() #过滤出aa字段等于123的都删除

改:update()

get(id=id).update(name=name)

查:all()、get()

get(id=id) # 查询单条数据

filter(name=name) # 查询匹配条件的多条数据

filter(name__contains=name) # 模糊查询;name为查询的字段名

filter(name__contains=name)[0:5] # [0]显示第一条 [0:2]会显示前两条,切片不支持负数

dome

# models.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models


class StudentManager(models.Manager):

    def create_student(self, name):
        # 方式一
        # student = Student(name = name)
        # # 保存到数据库
        # student.save()
        # 方式二(推荐)
        student = self.create(name=name)
        return student

    def select_all(self):
        # 查询全部
        list = self.all()
        return list

    def select_one(self, name):
        # a = []
        # # 查询单条数据
        # student = self.get(id=id)
        # a.append(student)
        # return a
        # 查询匹配条件的多条数据
        # student = self.filter(name=name)
        # 模糊查询
        student = self.filter(name__contains=name)
        # 根据字段内容排序后展示数据,根据字段内容逆向排序后展示数据,加一个负号order_by('-name')
        tt = student.order_by('name')

        # 限制数据条数, 相当于mysql limit
        tt1 = self.filter(name__contains=name)[0:5]  # [0]显示第一条 [0:2]会显示前两条,切片不支持负数
        return tt1

    def updata_student(self, id, name):
        self.get(id=id).update(name=name)  # update可多条update(name=name, bb="wahaha")

# Create your models here.
class Student(models.Model):

    # 如果没有models.AutoField,默认会创建一个id的自增列
    name = models.CharField(max_length=20)

    # model的字符串表现形式
    def __unicode__(self):
        return self.name

    objects = StudentManager() 
收藏
评论区

相关推荐

Django的安装与简易使用
Django的安装与简易使用 1.Django的简介Django是有Python编写的一个开源代码Web应用框架(网址:https://github.com/django/django)。他是基于MTV模式,其本质与MVC是一样的。具体是:1. M 代表模型(Model):负责业务对象和数据库的关系映射(ORM)2. T 代表模板 (Template):负责
小白学习python该往哪方面走小白必看
整理了Python的7大就业方向,希望大家能找到适合自己的,然后学习下去,完成人生的目标。1、Web开发(Python后端)Python有很多优秀的Web开发框架,如Flask、Django、Bootstar等,可以帮助你快速搭建一个网站。当需要一个新功能时,用Python只需添加几行代码即可,这受到了很多初创型公司的一致欢迎。像知乎、豆瓣、小米这样的大厂,
浅析常用的Python Web的几大框架
在各种语言平台中,python涌现的web框架恐怕是最多的,是一个百花齐放的世界,各种microframework、framework不可胜数;猜想原因应该是在python中构造框架十分简单,使得轮子不断被发明。所 以在Python社区总有关于Python框架孰优孰劣的话题。下面就给大家介绍一下python的几大框架: Django Django 应该是最出
Python项目实战——手把手教你使用Django框架实现支付宝付款
一、前言大家好,我是Python进阶者。春节即将过去,大家过年期间肯定各种掏腰包花花花,小编相信大家在支付时候,微信、支付宝支付肯定是优先选择。今天小编心血来潮,为大家带来一个很有趣的项目,那就是使用Python web框架Django来实现支付宝支付,废话不多说,一起来看看如何实现吧。 二、建立django应用我们来建立一个Django项目然后在里面创建
手把手教你用Django执行原生SQL
前言Hey,各位小伙伴,这次怎么来玩一下,如何使用Django执行原生SQL。我们都知道,Python在web界的扛把子——Django,可谓是集大成为统一,各种各样的插件、forms组件、model模型、Admin后台等等,后面我会专门出文章娓娓道来,反正就是一个字,NB。本次就来学一下,如何在Django执行原生语句。起因在使用Django时,一般情况下
一篇文章教会你使用Django根据现有数据库反向生成models
前言Hey,大家好呀,我是码农,星期八!熟悉Django的都知道,Django真是个好东西。复制粘贴一把梭很快都能撸出来一个web,再借助Django的Models和ORM。查询简直不要太方便!!!但是,但是,但是,真的如此吗??? Django Models遇到的问题通常情况下,我们是通过python manage.py makemigrationspy
uwsgi+django 配置
uwsgi+django ------------ 1. 创建新的虚拟环境,且解决crm的环境依赖 2. 在虚拟环境下安装uwsgi pip3 install uwsgi 3. 学习uwsgi命令,如何启动python应用 启动python web文件 创建一个test.py写入如下代
Asp.Net Core和Django如何选择
一、前言 ---- 最近经常听说“人生苦短,我选python”这句话,为什么python拥有如此多的粉丝,她和c#、java静态语言有哪些区别和优略呢?本篇将对python、c#主流的web框架Django和Asp.Net Core做一些分析,带给大家更多的技术认知。 ### 什么是Django Django是使用python语言开发的一套web框架,
Deploy Python Django Web Application with UWSGI and Nginx
Deploy Python Django Web Application with UWSGI and Nginx1. Install Packages2. Configure uWSGI2.1 Loading configuration files2.2 Magic variables2.3 Placeholders2.4 Placeholders mat
Django Drops
**1.Django Intro** ------------------ ![Django Archite](https://oscimg.oschina.net/oscnet/aa07f912f646b3bf567d5b9bba9398d1435.png) **2.Django Install** -------------------- ###
Django+nginx+uwsgi部署教程(centos7+ubuntu16.4)
**项目部署教程** [在线演示](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2F139.199.131.146%2F) ### **1.1.原理介绍** django *  一个基于python的开源web框架 uwsgi *  一是一个web服务器,也可以当做中间件
Django基础(二):环境配置
前戏 -- ### WEB框架简介 具体介绍Django之前,必须先介绍WEB框架等概念。 web框架: 别人已经设定好的一个web网站模板,你学习它的规则,然后“填空”或“修改”成你自己需要的样子。 一般web框架的架构是这样的: ![](https://oscimg.oschina.net/oscnet/8bd358de0b49e3508a61
Flask
Python 现阶段三大主流Web框架 Django Tornado Flask 对比 =========================================== [**百度百科**](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fbaike.baidu.com%2Fitem
Flask最强攻略
首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 ### 一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form
Nginx+uWSGI+Django原理
Python的Web开发中,如果使用Django框架,那么较为成熟稳定的服务器架构一般是Nginx+uWSGI+Django。而为什么一定要三个结合在一起呢?直接使用Django的runserver来启动服务器进程,或者uWSGI+Django可不可以呢?为什么?  **概念说明:** * APP(应用程序),就是开发者写的应用程序,例如djang