一. 安装 django

$ pip install django
    (env)$ python
>> import django
>> django.VERSION
>> django.get_version()

二. 项目结构

$ django-admin.py startproject mysite .     # 注意后面的 '点' .
$ tree
    mysite/
    ├── manage.py
    └── mysite
        ├── __init__.py
        ├── settings.py
        ├── urls.py
        └── wsgi.py

$ python manage.py runserver 8000   # 启动服务器.

文件职责介绍:

  • urls.py : 网址入口,关联到对应的 views.py 的中的一个函数(或generic类),访问网址对应一个函数.

  • views.py : 处理用户发出的请求, 从 urls.py 中对应过来, 通过渲染 templates 中的网页可以将显示的内容.

  • models.py : 与数据库操作有关,存入或存取数据时使用,可以不用.

  • forms.py : 表单,用户在浏览器上输入数据提交,对数据的验证工作以及输入框的生成等工作,可以不用.

  • templates 文件夹 : views.py 中的函数渲染 templates 中的html模板,得到动态内容网页,可用缓存来提升速度.

  • admin.py : 后台,可以用少量的代码,拥有一个强大的后台.

  • settings : Django的设置,配置文件,比如 DEBUG 开关,静态文件的位置等.

每个视图函数至少需要一个参数, 通常叫做 request , 这是一个触发这个视图, 包含当前 web 请求信息的对象, 是类 django.http.HttpRequest 的一个实例.

一个视图就是 Python 的一个函数, 这个函数第一个参数的类型是 HttpRequest, 它返回一个 HttpResponse 实例, 为了使一个 Python 的函数成为一个 Django 可识别的函数, 它必须满足这两个条件.

三. 命令汇总

# 新建一个 django project
    $ django-admin.py startproject PROJECT_NAME

# 新建 app
    $ python manage.py startapp APP_NAME
    $ django-admin.py startapp APP_NAME     # 同上 

    ** 一般一个项目有多个app,当然通用的app也可以在多个项目中使用

# 同步数据库

    $ python manage.py syncdb

    ** 当 Django 1.7.1 及以上版本需使用以下命令:
        $ python manage.py makemigrations
        $ python manage.py migrate

    ** 这种方法可以创建表,当你在 models.py 中新增了类时,运行它就可以自动在数据库中创建表了,不用手动创建.

    ** 对已有的 models 进行修改,Django 1.7 之前的版本的Django都是无法自动更改表结构的, 不过有第三方工具 south

# 使用开发服务器 :

    开发服务器,即开发时使用,一般修改代码后会自动重启,方便调试和开发,但是由于性能问题,建议只用来测试,不要用在生产环境。

    $ python manage.py runserver
    $ python manage.py runserver 8001
    $ python manage.py runserver 0.0.0.0:8000

# 清空数据库 :
    $ python manage.py flush    # 会询问 yes 还是 no. yes 会把数据全部清空,只留下空表.

# 创建超级管理员 :
    $ python manage.py createsuperuser  # 用户名,密码必填,邮箱可留空.

    $ python manage.py changepassword username  # 修改用户密码.

# 导入导出数据

    $ python manage.py dumpdata appname > appname.json

    $ python manage.py loaddata appname.json

# Django 项目环境终端.

    $ python manage.py shell        # 如果你安装了 bpython 或 ipython 会自动用它们的界面,推荐安装 bpython。

    ** 这个命令和 直接运行 python 或 bpython 进入 shell 的区别是:你可以在这个 shell 里面调用当前项目的 models.py 中的 API,对于操作数据,还有一些小测试非常方便。

# 数据库命令行
    $ python manage.py dbshell 

    Django 会自动进入在settings.py中设置的数据库,如果是 MySQL 或 postgreSQL,会要求输入数据库用户密码。

    在这个终端可以执行数据库的SQL语句。

# 更多命令 :
    $ python manage.py    # 查看命令列表.
    $ python manage.py help <subcommand> 

# 获取帮助 :
    $ python manage.py --help
    $ python manage.py help [SUB_CMD]

# 后台管理密码
    $ python manage.py createsuperuser
        user : admin
        password : 123456

    $ curl http://example.com/admin

python web -- django的更多相关文章

  1. python web——Django架构

    环境:windows/linux/OS 需要的软件:Firefox 浏览器(别的也可以 不过firfox和python的webdriver兼容性好) git版本控制系统(使用前要配置 用户 编辑器可以 ...

  2. python web django base skill

    web框架本质 socket + 业务逻辑 框架实现socket tonado node.js 使用WSGI实现socket django flask 自己实现框架思路 wsgiref socket ...

  3. python web django 2nd level -- 待更新

    练习代码位置 实例代码位置 --> app: myblog Form 利用Form表单验证,自己写的html 思路: 新建一个类 LoginForm(forms.Form) 新建对象 obj = ...

  4. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...

  5. [Python] 利用Django进行Web开发系列(二)

    1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...

  6. python web框架——扩展Django&tornado

    一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class Us ...

  7. 全面解读Python Web开发框架Django

    全面解读Python Web开发框架Django Django是一个开源的Web应用框架,由Python写成.采用MVC的软件设计模式,主要目标是使得开发复杂的.数据库驱动的网站变得简单.Django ...

  8. Nginx+Python+uwsgi+Django的web开发环境安装及配置

    Nginx+Python+uwsgi+Django的web开发环境安装及配置 nginx安装 nginx的安装这里就略过了... python安装 通常系统已经自带了,这里也略过 uwsgi安装 官网 ...

  9. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

随机推荐

  1. 关于获取URL中传值的解决方法

    在我们页面的URL中包含着很多信息,包括域名,协议等等这里就不一一介绍了),对于我们开发者而言,使用比较多的就是页面之间的传值.为什么要页面传值呢?很简单,当你在浏览一个商品页面的时候你要看到一个商品 ...

  2. Kafka 源码剖析

    1.概述 在对Kafka使用层面掌握后,进一步提升分析其源码是极有必要的.纵观Kafka源码工程结构,不算太复杂,代码量也不算大.分析研究其实现细节难度不算太大.今天笔者给大家分析的是其核心处理模块, ...

  3. Haoop基本操作

    一.HDFS的常用操作 (一).HDFS文件的权限 与Linux文件权限类似 r: read; w:write; x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容. 如果Lin ...

  4. Android Weekly Notes Issue #256

    Android Weekly Issue #256 May 7th, 2017 Android Weekly Issue #256 本期内容包括: 一个给ViewPager切换时加动画的库; Tail ...

  5. mysql修改数据库名

    1.创建新库 2.创建新库用户 3.备份旧库 4.修改表名 5.删除旧库   环境:mysql5.6已经有数据库dbbzpt,需要把它修改为dbedu.   1,2.使用root用户登录创建新库.创建 ...

  6. ORA-22835 缓冲区对于 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换而言太小

    在使用Oralce时,直接取出 CLOB 到 CHAR 转换或 BLOB 到 RAW 转换时,会出现ORA-22835的异常,以下是个人的解决方案 create or replace Function ...

  7. 微软 Build 2017 开发者大会:Azure 与 AI 的快速发展

    欢迎大家持续关注葡萄城控件技术团队博客,更多更好的原创文章尽在这里~~ 一年一度的微软 Build 大会准时起航,本年度大会从旧金山移师西雅图,一个近年来凭借女神汤唯而在中国家喻户晓的美国西部海滨城市 ...

  8. poj2253 Frogger Dijkstra变形

    题目链接:http://poj.org/problem?id=2253 就是求所有路径的最大边权值的最小值 处理时每次找出距离当前的已选的节点的最短距离,然后更新每个未选节点的值 代码: #inclu ...

  9. JAVA基础知识面试题

    一个JAVA文件可以定义多个类,但是只能有一个是public(也可以没有public类),并且该public的类的名称和JAVA文件名称相同.同时一个java文件可以有多个main方法,只有和java ...

  10. Struts流程分析+源码分析

    1.初始化工作 读取配置---转换器-----读取插件 当struts-config.xml配置文件加载到内存,则会创建两个map:ActionConfigs,FromBeans.这两个map都交由M ...