最近闲来无事,学习一下python来搭建个博客。
网上看看python基本语法,两三天搞定
django==1.6.2
MySQL-python
DjangoUeditor
pil
import django
def app(environ, start_response):
status = '200 OK'
headers = [('Content-type', 'text/html')]
start_response(status, headers)
body=["Welcome to Baidu Cloud!\n"]
#return body
return 'django version:' + django.get_version() #1.6.2
from bae.core.wsgi import WSGIApplication
application = WSGIApplication(app)
python django-admin.py startproject project_name
python manage.py startapp blog
project
|-- web-config
|-- wsgi.py
|-- urls.py
|-- settings.py
|-- __init__.py
|-- templates
|-- static
|-- media <-上传文件目录
|-- django_admin_bootstrapped <-这里使用了bootstrap后台管理显示
|-- blog <-这就是新建的模块
|-- templates <-有一个独立的方便些
|-- views.py
|-- urls.py <--独立一个
|-- models.py
|-- admin.py
|-- __init__.py
|-- manage.py
|-- requirement.txt
|-- app.conf
|-- favicon.ico
|-- index.py <--这个文件后续可以删掉
INSTALLED_APPS = (
'django_admin_bootstrapped.bootstrap3',
'django_admin_bootstrapped',#这两个要放置在admin
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'DjangoUeditor', #百度文本编辑器
#下面都是我自己添加的模块
'home',
'app',
'blog',
)
if 'SERVER_SOFTWARE' in os.environ: #BAE
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'XXXX', #根据自己BAE上面的数据库配置
'USER': 'XXXX',
'PASSWORD': 'XXXX',
'HOST': 'sqld.duapp.com',
'PORT': '4050',
}
}
else: #Location
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'mydb',
'USER': 'root',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
STATIC_URL = '/static/'
if 'SERVER_SOFTWARE' in os.environ: #BAE
STATIC_ROOT = 'static'
STATICFILES_DIRS = (
'',
)
else:
STATIC_ROOT = ''
STATICFILES_DIRS = (
'static',
)
TEMPLATE_DIRS = (
# each app/templates had been add
# self add
os.path.join(os.path.dirname(__file__), os.path.pardir, 'templates'),
)
MEDIA_ROOT = 'media'
MEDIA_URL = '/media/'
urls.py配置,直接贴了
from django.conf.urls import include, url
from django.conf import settings
from django.contrib import admin
admin.autodiscover()#为啥加这个给忘了
urlpatterns = [
# Examples:
# url(r'^$', 'mydjango.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^static/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}), #static配置
url(r'^media/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.MEDIA_ROOT}), #media配置
url(r'^admin/', include(admin.site.urls)), #admin管理
# Django Ueditor
url(r'^ueditor/', include('DjangoUeditor.urls')),
# my apps
url(r'^$', 'home.views.index'), #这个是配置主页的
url(r'^blog/', include('blog.urls')),
]
wsgi.py配置,注意判断本地与BAE的区别
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web-config.settings")
if 'SERVER_SOFTWARE' in os.environ: #BAE
from django.core.handlers.wsgi import WSGIHandler
from bae.core.wsgi import WSGIApplication
application = WSGIApplication(WSGIHandler())
else:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
python manage.py syncdb生成数据库(自己模块自由扩展咯)
python manage.py runserver本地运行,localhost:8000/admin,一切正常
svn上传BAE,xxx.duapp.com/admin。得到了404,发现只有xxx.duapp.com能访问。现在就需要配置app.conf了,把index.py去掉,换成我们的wsgi.py。(再运行就正常了)
handlers:
- url : /* #这里配置成这样为通用
script: web-config/wsgi.py
- expire : .jpg modify 10 years
- expire : .swf modify 10 years
- expire : .png modify 10 years
- expire : .gif modify 10 years
- expire : .JPG modify 10 years
- expire : .ico modify 10 years
啊~ 记得把本地mysql数据库导出,上传导入到BAE上的数据库中
虽然我配置了media,admin后台管理是能上传文件的,而且能显示出来,不过呢。这个文件并不是在你的media代码目录下。而是在执行单元的/home/bae/下面,所以最好用云存储或者自己svn上传。 待补充…
经过以上配置,基本环境都OK了,各自模块models.py/ views.py/ urls.py等等配置都是一些基本的。