一、简介
Django是python语言编写的目前主流的web开发框架之一。他已经自带了一套比较完善的权限管理体系,可直接进行使用或进行定制化开发。
二、django安装
前提条件:
1、需要安装python环境。具体如下:
下载python安装包。windows环境一般有zip格式和EXE两种。新手可以使用EXE格式的方便界面话操作。
2、下载django安装包,一般是tar.gz的安装包。可以使用解压缩软件解压到python安装路径的根目录(即磁盘根目录)。进入django解压目录,运行命令行。然后执行 python setup.py install命令,等待全部安装完毕。
注意看安装信息,因为安装过程需要下载相关依赖包,可能会由于网络问题报错。
等安装程序执行完毕,输入如下命令检查安装是否成功。
import django
django.get_version()
如安装成功,可继续下一步骤。
三、安装pymysql
pip3 install pymysql
四、安装mysqlclient
pip/pip3 install mysqlclient
三、创建项目
1、进入准备创建项目的目录,打开cmd并输入如下内容:
django-admin startproject 项目名称
然后就能看见项目目录创建成功,如创建名称为mysite的项目:
目录结构如下:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
目录及文件介绍(以下摘自Django官网文档)
These files are:
- The outer mysite/ root directory is just a container for your project. Its name doesn’t matter to Django; you can rename it to anything you like.
- manage.py: A command-line utility that lets you interact with this Django project in various ways. You can read all the details about manage.py in django-admin and manage.py.
- The inner mysite/ directory is the actual Python package for your project. Its name is the Python package name you’ll need to use to import anything inside it (e.g. mysite.urls).
- mysite/__init__.py: An empty file that tells Python that this directory should be considered a Python package. If you’re a Python beginner, read more about packages in the official Python docs.
- mysite/settings.py: Settings/configuration for this Django project. Django settings will tell you all about how settings work.
- mysite/urls.py: The URL declarations for this Django project; a “table of contents” of your Django-powered site. You can read more about URLs in URL dispatcher.
- mysite/wsgi.py: An entry-point for WSGI-compatible web servers to serve your project. See How to deploy with WSGIfor more details.
2、启动项目
切换目录到刚刚创建的项目根目录,在cmd执行如下命令:
- 使用默认端口启动
python manage.py runserver
- 使用指定IP和端口启动
python manage.py runserver 127.0.0.1:
8080
3、查看项目
待项目启动完成,会出现如下界面:
即访问地址为:localhost:8000.
4、创建应用(应用可理解为一个包)
python manage.py startapp polls
四、实例
修改项目目录的settings.py文件中如下参数:
DATABASES
= {
'
default
'
: {
'
ENGINE
'
:
'
django.db.backends.mysql
'
,
'
NAME
'
:
'
test
'
,
'
USER
'
:
'
test
'
,
'
PASSWORD
'
:
'
test123
'
,
'
HOST
'
:
'
localhost
'
,
'
PORT
'
:
'
3306
'
, }}
配置完毕后,执行
python manage.py syncdb 或者python manage.py migrate(
django 1.7以上
)
完毕之后,继续执行
python manage.py createsuperuser创建超级用户
然后在浏览器输入地址:localhost:8000/admin,跳转至如下界面,输入刚刚创建的用户名称和密码登录。
四、目录文件及配置说明
urls.py文件
# ^$代表根目录访问
url(r'^hello$', view.
helloWorld),
其中黄色标记部分是在view.py文件中定义的函数名,如:
迭代功能
{% for athlete in athlete_list %}
<li>
{{ athlete.name }}
</li>
{% endfor %}
反向迭代
{%
for
athlete
in
athlete_list reversed
%}
...
{%
endfor
%}
ifequal/ifnotequal 标签
{% ifequal %} 标签比较两个值,当他们相等时,显示在 {% ifequal %} 和 {% endifequal %} 之中所有的值。
下面的例子比较两个模板变量 user 和 currentuser :
{%
ifequal user currentuser
%}
<h1>
Welcome
!</
h1
>
{%
endifequal
%}
和 {% if %} 类似, {% ifequal %} 支持可选的 {% else%} 标签:8
{%
ifequal section
'sitenews'
%}
<h1>
Site
News
</
h1
>
{%
else
%}
<h1>
No
News
Here
</
h1
>
{%
endifequal
%}
继承块
{% block mainbody %}
<
p
>
original
</
p
>
{% endblock %}
在其他页面要使用时,只需加入继承声明内容,然后添加继承块说明即可。如下:
{% extends "base.html" %}
{% block mainbody %}
<
p
>
继承了 base.html 文件
</
p
>
{% endblock %}
通过对象构建数据库表
$ python manage
.
py makemigrations
TestModel
# 让 Django 知道我们在我们的模型有一些变更
$ python manage
.
py migrate
TestModel
# 创建表结构
五、异常处理
(1)创建对象带有外键时不添加on_delete参数报错
解决办法,添加该参数即可。表示级联删除。
(2)创建表时,自定义对象没有创建对应表
解决办法:
执行manage.py makemigrations
然后再执行manage.py migrate