简介:
Python是很不错的编程语言,Django是基于Python的web框架,Postgresql是数据库, Psycopg用来给Python和Postgresql的一个桥接的工具,Bootstrap是模版工具。全文需要英语基础。
Django应用是如何工作的?
用户在浏览器中输入URL后回车, 浏览器会对URL进行检查, 首先判断协议,如果是http就按照 Web 来处理, 然互调用DNS查询, 将域名转换为IP地址, 然后经过网络传输到达对应Web服务器, 服务器对url进行解析后, 调用View中的逻辑(MTV中的V), 其中又涉及到Model(MTV中的M), 与数据库的进行交互, 将数据发到Template(MTV中的T)进行渲染, 然后发送到浏览器中, 浏览器以合适的方式呈现给用户
大致工作流程就是这样,从流程可以看出,我们需要做的就是:
- 编写相应的 url
- 编写数据库(Model
- 编写处理 Http 请求的视图函数(View)
- 编写需要渲染的模板(Template)
软件版本和官网:
- Python V3.5.2 官网:www.python.org
- Django V1.10 官网:www.djangoproject.com
- Postgresql V9.5.4 官网: www.postgresql.org
- Psycopg V2.6.2 官网:http://initd.org/psycopg/
- Bootstrap V3.3.5 官网:http://www.bootcss.com/
说明:$开头的命令是在CMD窗口下,
>>>的命令表示Python在调试窗口的命令。
没有的开头符号的表示在.py文件里的代码 ##
1、 创建虚拟环境
为了防止后续Django版本升级带来的可能的兼容性问题,首先创建一个新的操作环境,其实就是一个单独的文件夹。打开CMD窗口,使用cd..命令退到C盘根目录,创建一个自定义名字的文件夹,这里以test1命名。可自定义其他名字,那样请在此文后续有test1的地方都替换成你的命名:
$ python –m venv test1
$ cd test1
$ cd Scripts
$ activate.bat
说明:
venv是Python V3版本后才有的,如果V2版本不支持。可以看到创建的test1文件夹里面有4个文件,其中一个是Scripts,代表Python的脚本文件。最后你的Dos路径前面会有(test1)的字样,表示虚拟环境创建成功。
也可用pip freeze 命令来检测当前路径下安装的库,可以和Python真实安装路径对比,当然这一步可忽略。
2、安装Django
$ pip install django
3、 创建工程
在test1文件夹路径下,输入:
$ django-admin startproject django1
这就创建了一个名字为django1的工程,其实就是一个网站,注意可自定义名字替换掉django1,但取名不要和python内置函数冲突。
如果在电脑里查看,则在test1文件夹里多了一个django1的文件夹,当打开django1文件夹,里面有一个manager.py和django1的文件夹,包含4个文件。
4、运行网站
$ cd django1
$ python manage.py runserver
到浏览器中输入 : localhost:8000 或者127.0.0.1:8000,当出现It worked!字样,则成功。从输入网址,到出现界面的这个角度,你已经有一个网站了,虽然里面没什么内容,也许你会说,这也叫网站?别着急,内容会在后续慢慢添加。
Tips:
Django官网的文档给出了详细的说明,英文,网址:https://docs.djangoproject.com/en/1.10/intro/tutorial01/
5、创建app
这里命名为blog,可自定义。
$ python manage.py startapp blog
可以看到会多了一个blog的文件夹,里面有一个migrations文件夹和一些py文件。
同时,我们应该修改setting.py文件的app部分的代码,放在第6部分讲解。
6、数据库使用
本文使用postgresql,同时,装好psycopg。但是要注意的是,由于本文使用的是虚拟环境,所以要把psycopy也装在虚拟路径,方法是形如:
(test1) C:> easy_install psycopg2-2.6.2.win-amd64-py3.5-pg9.5.3-release.exe
此时,用pip freeze可查看到除了之前唯一的安装的Django,现在多了psycopg,一共2个第三方库了。
但因为Django默认使用的数据库是sqlite,在我们的文件目录中也有db.sqlite3的文件。为了使得正常使用postgresql数据库,我们需要在setting.py文件中修改对应的数据库信息。
步骤:
A:使用Sublime Text打开setting.py,你也可以用Python shell或者类似Pycharm或者notepad++甚至记事本等工具来编辑。快键Ctrl+F: 搜索database,找到对应的代码部分。
B:查看关于database的原始代码,然后搜索官网关于setting的设置文档介绍,如地址:https://docs.djangoproject.com/en/1.10/ref/settings/
发现首先要修改成形如下图:
C:此时,发现我们需要在postgresql中先创建一个数据库,因此在win窗口按键—>“所有程序”中打开pgAdmin III如下图:
右键选“连接”
输入密码(如之前选择了保存密码的会跳过此步)
然后右键点数据库,选:新建数据库:
进行简单设置,“名称”根据我们的app名字对应为blog,“所有者”是下拉选项,只有一个postgres,然后确定,如下图:
D:然后左侧就出现了blog的空的数据库,接下来我们要修改下setting.py中关于database的代码,参考步骤(B)中的官方示范格式。
修改代码如下(注意密码我用XXX代替,填写你设置的postgres登录密码):
DATABASES = {
‘default’: {
‘ENGINE’: ‘django.db.backends.postgresql’,
‘NAME’: ‘blog’,
‘USER’: ‘postgres’,
‘PASSWORD’: ‘XXX’,
‘HOST’: ‘127.0.0.1’,
‘port’: ‘5432’
}
接下来还需要把blog的app添加到setting.py中。搜索关键字app,找到对应代码,增加你的app名字blog,而其他的是系统自带的,形如:
INSTALLED_APPS = [
‘blog’,
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
]
以上就完成了Django和数据库的关联。
7、修改model.py来创建数据模型
打开blog文件夹下的model.py文件,发现默认的除了一行带有import的代码外,其他是空的。
首先参考官网关于model部分的介绍和代码参考,地址:https://docs.djangoproject.com/en/1.10/topics/db/models/
以及
https://docs.djangoproject.com/en/1.10/ref/models/fields/#model-field-types
因为这是一个基于blog的模型,所以,我们可以设置:主题、作者、内容、发贴日期、修改日期等信息。根据规范,我们建立一个Python格式的class。增加代码如:
class Article(models.Model):
title = models.CharField(“Title”, max_length = 50)
author = models.CharField(“Author”, max_length = 50)
content = models.TextField()
created_date = models.DateField(“Created Date”, auto_now_add = True)
modified_date = models.DateField(“Modified Date”, auto_now = True)
is_show = models.BooleanField()
def __str__(self):
return self.title
class Meta:
db_table = 'article'
# 下一篇请看:【点我】#