01.Django学习之安装,建立项目,传参,MySQL数据库,静态文件配置和模板的使用
2015-12-03 19:31
1086 查看
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
浏览器访问:
127.0.0.1:8000/blog/hello
至此项目建立已基本完成
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))
浏览器访问:127.0.0.1:8000/blog/hello
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('\\','/') ),
)
当然这里也可以简化一下,只需要如下的配置也可以:
在模板网页中使用的时候加上/static/ 如:
<link href="/static/css/index.css" rel="styleshet" type="text/css" />
其他的如上
5:传递参数:
传递参数类型为:Python的变量,函数,类....
({name}):表示变量
6:URL传值(使用正则表达式)
myweb项目下的url
方式一:http://127.0.0.1:8000/blog/time/?id=123&name=qwe
7:MySQL数据库的简单配置
连接:
myweb中的settings.py
[/code]
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
浏览器访问:
127.0.0.1:8000/blog/hello
至此项目建立已基本完成
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))
浏览器访问:127.0.0.1:8000/blog/hello
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('\\','/') ),
)
当然这里也可以简化一下,只需要如下的配置也可以:
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'), ]
方式一:http://127.0.0.1:8000/blog/time/?id=123&name=qwe
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
运行下面的命令来生成 [code]CREATE TABLE语句
[/code]
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
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马
- Oracle 手动创建数据库步骤详解
- 分割超大Redis数据库例子