1:安装
pip install Django==1.8.6
2:建立项目
进入某个目录执行 django-admin.py startproject myweb(此为项目目录)
建立子目录:
先进入 myweb目录,然后执行 manage.py startapp blog,ok子目录完毕
在SName的views.py中添加如下代码:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello World")
配置url:
在myweb的settings.py 中INSTALLED_APP = ('xxxx','xxx','xxx','blog',)加上blog
在同级目录的urls.py中 配置url,这里有两种方式
(1)直接定位
url(r'^blog/index/$','blog.views.hello'),
(2)定位到子目录
在myweb 中的urls.py中加入url(r'^blog/', include('blog.urls'))
再定位到具体文件
在blog中的urls.py中加入url(r'^blog/$', 'blog.views.hello')
启动服务:
进入myweb目录,执行manage.py runserver
浏览器访问:
至此项目建立已基本完成
3:使用模板
在blog目录下建立templates文件夹,将index.html放入
blog的views.py修改如下:
from django.http import HttpResponse
from django.template import loader,Context
def hello(request):
t = loader.get_template('index.html')
c = Context({}) #用于传参数
return HttpResponse(t.render(c))
4:配置CSS,js,images.....等静态文件目录
在FName下建立static目录,将css,images等文件夹拷贝到此目录下
在FName的settings.py STATIC_URL = '/static/' 下加上如下文件
STATIC_ROOT = os.path.join(os.path.dirname(__file__),'../static')
STATICFILES_DIRS = (
('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),
('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ),
('images',os.path.join(STATIC_ROOT,'images').replace('\\','/') ),
('upload',os.path.join(STATIC_ROOT,'upload').replace('\\','/') ),
)
STATICFILES_DIRS = (
('css',os.path.join(STATIC_ROOT,'css').replace('\\','/') ),
('js',os.path.join(STATIC_ROOT,'js').replace('\\','/') ),
('images',os.path.join(STATIC_ROOT,'images').replace('\\','/') ),
('upload',os.path.join(STATIC_ROOT,'upload').replace('\\','/') ),
)
当然这里也可以简化一下,只需要如下的配置也可以:
STATIC_URL = '/static/' STATICFILES_DIRS=( os.path.join(BASE_DIR,'static') )
在模板网页中使用的时候加上/static/ 如:
<link href="/static/css/index.css" rel="styleshet" type="text/css"
/>
其他的如上
5:传递参数:
传递参数类型为:Python的变量,函数,类....
({name}):表示变量
6:URL传值(使用正则表达式)
myweb
项目下的url
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^blog/',include('blog.urls')),
]
复制myweb下的url到blog目录下,修改如下
urlpatterns = [
url(r'^time/$','blog.views.time'),
url(r'^foo/(\d{4})/(\w+)/$','blog.views.foo'),
]
def time(request):
t = loader.get_template("time.html")
id = request.GET.get("id")
name = request.GET.get("name")
c = Context({"title":"thinkgamer","time":datetime.datetime.now(),"id":id,"name":name})
return HttpResponse(t.render(c))
<body>
<p>time is {{ time | date:"Y-m-d"}}</p>
<p>id is {{ id }}</p>
<p>name is {{ name }}</p>
</body>
方式二:http://127.0.0.1:8000/blog/foo/1234/asdd/
def foo(request,p1,p2):
t = loader.get_template("time.html")
c = Context({"title":"thinkgamer","time":datetime.datetime.now(),"id":p1,"name":p2})
return HttpResponse(t.render(c))
<body>
<p>time is {{ time | date:"Y-m-d"}}</p>
<p>id is {{ id }}</p>
<p>name is {{ name }}</p>
</body>
url(r'^foo/(\d{4})/(\w+)/$','blog.views.foo'),
7:MySQL数据库的简单配置
连接:
myweb中的settings.py
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'csvt', 'USER':'root', 'PASSWORD':'123456', 'HOST':'', 'PORT':'', } }
blog的models.py文件
from django.db import models class Employee(models.Model): name=models.CharField(max_length=20)
同步数据库
首先,用下面的命令验证模型的有效性:
python manage.py validate
运行下面的命令来生成CREATE TABLE
语句
python manage.py sqlall blog输出的是sql语句,但此时并没有在数据库中创建数据表
同步数据库
python manage.py syncdb
(此时可能会报错,解决办法是:删除blog下的migrations目录,重新执行python manage.py syncdb即可)
反向同步
python manage.py inspectdb(查看语句)
python manage.py > inspectdb> blog/models.py