【Django】不知道为什么就是想学一下 01
1. Django安装、项目创建及服务器连接
系统:Ubuntu 14.04.4
> cat /etc/issue //查看系统版本
安装Django
> sudo pip install django
确定进入了root模式,进入django-admin.py所在目录,运行以下指令
> django-admin.py startproject mysite
在当前目录生成mysite文件夹,进入文件夹(哦,项目名可以随意取,不一定非得mysite...)
> manage.py runserver
浏览器输入:http://127.0.0.1:8000/。显示如下界面,连接服务器成功

2. urls.py文件的配置
尝试修改manage文件夹中urls.py的内容。
URL配置就像是 Django 所支撑网站的目录。它的本质是 URL 模式以及要为该 URL 模式调用的视图函数之间的映射表。 你就是以这种方式告诉 Django,对于这个 URL 调用这段代码,对于那个 URL 调用那段代码。
执行 django-admin.py startproject 时,该脚本会自动为你建了一份 URLconf(即 urls.py 文件)。
每个url模式的完整内容为
urlpatterns = patterns(前缀,
url(正则表达式, 视图函数, 参数字典, 名称),
)
修改urls.py文件,将urlpatterns修改如下
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', 'mysite.hello.helloworld'), #即mysite/hello.py中的hello_world函数
]
在mysite文件夹下创建hello.py文件
# -*- coding: utf-8 -*-
# hello.py from django.http import HttpResponse def hello_world(request): #视图函数hello_world
return HttpResponse("<p>Hello,World!</p>") #一个视图功能必须返回一个HttpResponse
刷新http://127.0.0.1:8001/,显示如下

3. 数据库
接下来创建数据库,在第一个mysite文件夹下进行如下指令
python manage.py migrate
4. 增加app功能
首先了解一下app是什么吧~
之前starproject指令我们已经创建了mysite项目。
一个project包含很多个Django app以及对它们的配置。
技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息, 安装的app列表, TEMPLATE_DIRS ,等等。
一个app是一套Django功能的集合,通常包括模型和视图,按Python的包结构的方式存在。
例如,Django本身内建有一些app,例如注释系统和自动管理界面。 app的一个关键点是它们是很容易移植到其他project和被多个project复用。
创建一个app
python manage.py startapp blog #创建blog这个app
在mysite中(不是mysite/mysite)生成了blog文件夹,内容如下
blog
├── migrations
| __init__.py
├── __init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py
创建应用程序blog后,找到mysite中的settings.py文件,在installed_apps下加上‘blog’,告诉Django使用blog这个app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog', #添加blog!
]
【= - =插播一下,因为我的ubuntu一直没取得完全的root权限,每次输入指令需要的话都是sudo su,编辑blog内文件又遇到权限问题,可以通过输入以下指令取得超级权限,从而可以编辑一切文件】
> sudo nautilus
【插播完毕】
根据官方教程,先将blog/models.py内容改为如下
from __future__ import unicode_literals from django.db import models
from django.utils import timezone # Create your models here.
class Post(models.Model): #定义Post对象,models.Model表明Post是Django的模型(?)
#定义title,text,created_date,published_date和author属性
author = models.ForeignKey('auth.User') #models.ForeignKey表示指向另一个模型的连接
title = models.CharField(max_length=200)
text = models.TextField()
created_date = models.DateTimeField(
default=timezone.now)
published_date = models.DateTimeField(
blank=True, null=True) def publish(self):
self.published_date = timezone.now()
self.save() def __str__(self):
return self.title
上面这一串暂时别管了= - =,慢慢解释
5. 将新模型添加到数据库
在数据库中为模型建立数据表,在mysite文件夹中运行如下指令
> python manage.py makemigrations blog
Then
> python manage.py migrate blog
酱紫Post模型就在在我们的数据库里面辣~
6. 后台管理
向blog/admin.py中添加代码
from django.contrib import admin # 添加如下代码
from .models import Post admin.site.register(Post) #用此行代码注册模型使其在页面上可见
然后打开网站http://127.0.0.1:8001/admin,出现登陆界面
“为了登录, 你需要创建一个掌控整个网站所有东西的超级用户。”
继续执行如下指令
> python manage.py createsuperuser
然后根据提示输入用户名邮箱密码blablabla~
之后用自己设置的superuser登陆刚刚的登陆界面。

可以Post自己的文章啦~
【Countinued】
-------------------------------------------------------------------------------------------------------------------------------------------------------
来自官方的教程(•̀ᴗ•́)و:http://tutorial.djangogirls.org/
【Django】不知道为什么就是想学一下 01的更多相关文章
- 想学Python不知道从哪里开始学?|百度网盘免费下载| 这本入门书了解下
百度网盘免费下载:编程小白的第一本 Python 入门书 提取码:s0pc Python是什么 Python是一种计算机程序设计语言,由吉多·范罗苏姆创造,第一版发布于1991年,可以视之为一种改良的 ...
- 2014年9月21日_随笔,jdic,ETL,groovy,Nutz好多东西想学
(1)老妈十一要回老家,才突然发现买票好难啊.有亲朋很重要 (2)这周我做了什么.jdic,ETL,groovy, Nutz好多东西想学. Nutz开发成员专访.Nutz优酷视频(演讲).Nutz 入 ...
- 最近想学Json,请问大家有没有什么好的Json教程介绍一下?
最近想学json,请问大家有没有什么好的Json教程介绍一下? 最近学完java的框架了,想了解一下json,可是找不到相关视频,请大家有这方面的Json教程好资料就介绍下啦,最后有网址链接啦. {} ...
- 和李洪强一起学设计01 PS第一天
和李洪强一起学设计01 PS第一天
- 少年,想学带修改主席树吗 | BZOJ1901 带修改区间第k小
少年,想学带修改主席树吗 | BZOJ1901 带修改区间第k小 有一道题(BZOJ 1901)是这样的:n个数,m个询问,询问有两种:修改某个数/询问区间第k小. 不带修改的区间第k小用主席树很好写 ...
- 为什么43%前端开发者想学Vue.js
根据JavaScript 2017前端库状况调查 Vue.js是开发者最想学的前端库.我在这里说明一下我为什么认为这也是和你一起通过使用Vue构建一个简单的App应用程序的原因. 我最近曾与Evan ...
- 结合jquery的前后端加密解密 适用于WebApi的SQL注入过滤器 Web.config中customErrors异常信息配置 ife2018 零基础学院 day 4 ife2018 零基础学院 day 3 ife 零基础学院 day 2 ife 零基础学院 day 1 - 我为什么想学前端
在一个正常的项目中,登录注册的密码是密文传输到后台服务端的,也就是说,首先前端js对密码做处理,随后再传递到服务端,服务端解密再加密传出到数据库里面.Dotnet已经提供了RSA算法的加解密类库,我们 ...
- APP爬虫(1)想学新语言,又没有动力,怎么办?
最近Python和GO语言很火,想学但是只能看得懂21天精通这种级别的教程.公司的项目暂时不会上py或go的技术栈,给的薪资福利待遇还可以,暂时又不想辞职.没有项目实战经验,完全看不懂大神写的干货,怎 ...
- 给想学python但还没有接触过的你,python代码的书写规则,小白入门
Python 文件结构 变量命名 注释 单行注释 多行注释 缩进 Python 文件结构 #!/usr/bin/env python3 # 指定python解释器 # -*- coding: utf- ...
随机推荐
- 20165223 《JAVA程序设计》第五周学习总结
教材学习内容总结 第七章要点 内部类 匿名类 异常类 断言 第十章要点 File类 文件字节/字符的输入.输出流 缓冲流 随机流 数组流 数据流 对象流 序列化和对象克隆 使用Scanner解析文件 ...
- spring data jpa 分页查询
https://www.cnblogs.com/hdwang/p/7843405.html spring data jpa 分页查询 法一(本地sql查询,注意表名啥的都用数据库中的名称,适用于特 ...
- SRM 600 div 2 T 2
题意:给你50个数,问你最少去掉多少数能使得剩下的数不可能具备子集S,OR起来为goal 如果一个数不是goal的子状态,那么我们没必要删除他,所以我们只关心goal的子状态的数 1:如果所有的数OR ...
- 洛谷P4206 聪聪与可可
无向简单图上给定s,t.每秒s先向t按照最短路走两步(优先节点编号较小的),然后t随机行动一步. 问期望多少秒相遇.n <= 1000 解: 这个s太蛇皮了...所以预处理一波. 然后不会,看题 ...
- 记一次 HTTP信息头管理器使用 的重要性
今天在测试中遇到了一个问题 使用JMeter时请求相关地址参数及方法都填写正确,但是相应数据返回始终不对,例如 查看取样器结果显示 200 正常,但响应数据不符合正常的结果. 经反复检查发现问题如下: ...
- Vector使用测试
1.测试vector是否自动释放分配的空间 vector有大致两类申请空间的方式,一是vector(n,T()),一是vector(p,p+n)(p是自己申请的空间的指针). 其中第一种估计肯定会释放 ...
- Educational Codeforces Round 55 (Rated for Div. 2) B. Vova and Trophies
传送门 https://www.cnblogs.com/violet-acmer/p/10035971.html 题意: Vova有n个奖杯,这n个奖杯全部是金奖或银奖,Vova将所有奖杯排成一排,你 ...
- 计算机基础:计算机网络-chapter2
因为计算机网络是的传输从物理到数据端的过程到端是自下而上的,所以大多数的教材都是从五层协议结构的底部开始向上延申. 物理层: = = 好复杂哦.看不懂,反正就是讲一些通信的线,信号传输的实现原理,和信 ...
- Qt: 文件、文件夹的操作;
Qt没有提供单独的函数来对文件.文件夹进行操作, 但是提供了两个类: QFile, QDir; 1.文件操作 ) 文件是否存在: QFile file("D:/test.jpg") ...
- 剑指Offer_编程题_9
题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级.求该青蛙跳上一个n级的台阶总共有多少种跳法. class Solution { public: int jumpFloorI ...