Django使用bootstrap實例

下載python版本進行安裝
https://www.python.org/downloads/
windows版本下載msi文件雙擊安裝


下載Django版本進行安裝
https://www.djangoproject.com/download/
下載壓縮包解壓,cmd進入解壓後的django版本目錄
執行安裝命令:
E:\Django-1.9.12>python setup.py install


添加PATH環境變量
C:\Python27\Lib\site-packages\Django-1.9.12-py2.7.egg\django\bin




基本命令
================================
1. 新建一個 django project
D:\develop>django-admin.py startproject mysite


2. 新建 app


python manage.py startapp app-name
或 django-admin.py startapp app-name


3. 同步數據庫


python manage.py syncdb
 
注意:Django 1.7.1及以上的版本需要用以下命令
python manage.py makemigrations
python manage.py migrate
這種方法可以創建表,當你在models.py中新增了類時,運行它就可以自動在數據庫中創建表了,不用手動創建。


4. 使用開發服務器
開發服務器,即開發時使用,一般修改代碼後會自動重啓,方便調試和開發,但是由於性能問題,建議只用來測試,不要用在生產環境。

python manage.py runserver
 
# 當提示端口被佔用的時候,可以用其它端口:
python manage.py runserver 8001
python manage.py runserver 9999
(當然也可以kill掉佔用端口的進程)
 
# 監聽所有可用 ip (電腦可能有一個或多個內網ip,一個或多個外網ip,即有多個ip地址)
python manage.py runserver 0.0.0.0:8000
# 如果是外網或者局域網電腦上可以用其它電腦查看開發服務器
# 訪問對應的 ip加端口,比如 http://172.16.20.2:8000


5. 清空數據庫
python manage.py flush
此命令會詢問是 yes 還是 no, 選擇 yes 會把數據全部清空掉,只留下空表。


6. 創建超級管理員
python manage.py createsuperuser
 
# 按照提示輸入用戶名和對應的密碼就好了郵箱可以留空,用戶名和密碼必填
 
# 修改 用戶密碼可以用:
python manage.py changepassword username

7. 導出數據 導入數據
python manage.py dumpdata appname > appname.json
python manage.py loaddata appname.json
關於數據操作 詳見:數據導入數據遷移,現在瞭解有這個用法就可以了。


8. Django 項目環境終端
python manage.py shell
如果你安裝了 bpython 或 ipython 會自動用它們的界面,推薦安裝 bpython。


這個命令和 直接運行 python 或 bpython 進入 shell 的區別是:你可以在這個 shell 裏面調用當前項目的 models.py 中的 API,對於操作數據,還有一些小測試非常方便。


9. 數據庫命令行
python manage.py dbshell
Django 會自動進入在settings.py中設置的數據庫,如果是 MySQL 或 postgreSQL,會要求輸入數據庫用戶密碼。


在這個終端可以執行數據庫的SQL語句。如果您對SQL比較熟悉,可能喜歡這種方式。


10. 更多命令
終端上輸入 python manage.py 可以看到詳細的列表,在忘記子名稱的時候特別有用。




URL映射
========================
mysite
├── app1
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py 新增
│   ├── apps.py
│   └── views.py
├── templates 新增模板目錄
│   └── app1
│    └── index.html
├── static 新增 靜態媒體目錄
│   └── images
│        └── lilies.jpg
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py 修改
    ├── urls.py
    └── wsgi.py


在settings.py中增加以下配置
靜態文件路徑
STATIC_PATH = os.path.join(BASE_DIR,'static')
STATIC_URL = '/static/' # You may find this is already defined as such.
STATICFILES_DIRS = (
    STATIC_PATH,
)

模板文件路徑
TEMPLATE_PATH = os.path.join(BASE_DIR, 'templates')


TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [TEMPLATE_PATH],
        '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',
            ],
        },
    },
]




mysite工程中的urls.py中增加內容
    url(r'^app1/', include('app1.urls')),


app1中新增的urls.py中內容
from django.conf.urls import patterns, url
from app1 import views


urlpatterns = [
        url(r'^$', views.index, name='index')
]



爲了建立映射,我們用到了tuple.
在Django裏必須用urlpatterns來命名這個元組.
這個urlpatterns元組包含一些django.conf.urls.url()函數的調用,而每個函數裏都有一個唯一的映射.
在上面的代碼裏,我們只用了url()一次,所以我們只映射了一個URL.
django.conf.urls.url()函數的第一個參數是正則表達式^$,指的是匹配一個空字符串.
所有匹配這個模式的URL都會映射到views.index()這個視圖.
用戶的請求信息會包含在HttpRequest對象裏作爲參數傳遞給視圖.
我們給url()函數可選參數name賦值爲index.


index.html內容如下
<!DOCTYPE html>

{% load staticfiles %} <!-- New line -->

<html>
    <head>
        <title>SSOC</title>
    </head>

    <body>
        <h1>SSOC says...</h1>
        hello world! <strong>{{ boldmessage }}</strong><br />
        <img src="{% static "images/lilies.jpg" %}" alt="Picture of app1" /> 
    </body>


</html>
</html>




首先,我們需要使用{% load static %}標籤來使用靜態媒體.所以我們纔可以用{% static "rango.jpg" %在模板裏調用static文件.Django模板標籤用{ }來表示.在這個例子裏我們用static標籤,它將會把STATIC_URL和rango.jpg連接起來,如下所示.


<img src="/static/images/rango.jpg" alt="Picture of Rango" /> <!-- New line -->
如果因爲什麼原因圖片不能加載我們可以用一些文本來代替.這就是alt屬性的作用 - 如果圖片加載失敗就顯示alt屬性中的文本.


好了,讓我們再次運行Django服務訪問http://127.0.0.1:8000/rango.幸運的話可以看到下圖.




模板
========================


mysite
├── app1
│   ├── __init__.py
│   ├── admin.py
│   ├── migrations
│   │   └── __init__.py
│   ├── models.py
│   ├── tests.py
│   ├── urls.py
│   ├── apps.py
│   └── views.py
├── templates
│   ├── base.xml 新增
│   ├── nav.xml 新增
│   └── app1
│    └── index.html新增
├── static
│   ├── images
│   └── bootstrap
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py




index.xml

{% extends 'base.html' %}
 
{% block title %}My-SSOC{% endblock %}
 
{% block content %}
        hello world! 
<p class="text-warning">kkkkkkkkkkkk warning class</p>
<p class="text-danger">fffffffff danger class</p>
{% endblock %}


base.html
<!DOCTYPE html>
<html>
   <head>
      <meta charset="utf-8">
      <title>{% block title %}SSOC{% endblock %} - wangyu</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0">


      <link href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
 	<script src="http://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
	<script src="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
 
   </head>
   <body>
	{% include 'nav.html' %}


	{% block content %}
	<div>This is origin content</div>
	{% endblock %}


   </body>
</html>



nav.html
<nav class="navbar navbar-default" role="navigation">
	<div class="container-fluid">
	<div class="navbar-header">
		<a class="navbar-brand" href="#">SSOC</a>
	</div>
	<div>
		<ul class="nav navbar-nav">
			<li class="dropdown">
				<a href="#" class="dropdown-toggle" data-toggle="dropdown">haha<b class="caret"></b></a>
					<ul class="dropdown-menu">
					<li><a href="#">a1</a></li>
					<li><a href="#">a22</a></li>
					<li><a href="#">Jaf Report</a></li>
					<li class="divider"></li>
					<li><a href="#">df</a></li>
					<li class="divider"></li>
					<li><a href="#">bg</a></li>
				</ul>
			</li>
			<li><a href="#">SVN</a></li>
			<li class="dropdown">
				<a href="#" class="dropdown-toggle" data-toggle="dropdown">Java<b class="caret"></b></a>
				<ul class="dropdown-menu">
					<li><a href="#">jmeter</a></li>
					<li><a href="#">EJB</a></li>
					<li><a href="#">Jasper Report</a></li>
					<li class="divider"></li>
					<li><a href="#">divide</a></li>
					<li class="divider"></li>
					<li><a href="#">another</a></li>
				</ul>
			</li>
		</ul>
	</div>
	</div>
</nav>





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章