据说现在python Django 很火 搞一下子的
- 开始
- django Basic
- 建立一个django的项目
- 跑起来!
- TS(trouble shooting): py 3.7 遇到django/contrib/admin/widgets.py 报错
- Project 概念 VS App 概念
- tips: pip freeze and pip list
- 建立一个Django的APP
- 把自己的APP(polls) 加入主project中
- 安装所有的app
- 修改APP,改完model 怎么commit
- 数据库配置
- 不用的app使用不同的数据库
- 如何在 urls.py 中配置UI page
- 如何使用template 功能
- 以下不要看=--------------------------------
- 注释也是必不可少的
- KaTeX数学公式
- 新的甘特图功能,丰富你的文章
- UML 图表
- FLowchart流程图
- 导出与导入
开始
virtualenv
建立一个env
virtualenv %virtaualName
进入env
. venv/bin/activate
包管理 pip
建立一个requirement.txt
这里的requirement.txt的作用是在虚拟环境中 要安装的包
Django==2.2.4
psycopg2==2.8.3
psycopg2-binary==2.8.3
pytz==2019.2
sqlparse==0.3.0
然后安装
pip install -r requirement.txt
django Basic
建立一个django的项目
django-admin startproject mysite
跑起来!
python manage.py runserver
TS(trouble shooting): py 3.7 遇到django/contrib/admin/widgets.py 报错
https://github.com/hjwp/Book-TDD-Web-Dev-Python/issues/99
To fix this, edit this file: [virtual env directory]/lib/python3.7/site-packages/django/contrib/admin/widgets.py
delete the following lines [150-153]
related_url += ‘?’ + ‘&’.join(
‘%s=%s’ % (k, v) for k, v in params.items(),
)
and add this in place:
related_url += ‘?’ + ‘&’.join(’%s=%s’ % (k, v) for k, v in params.items())
Project 概念 VS App 概念
What’s the difference between a project and an app? An app is a Web
application that does something – e.g., a Weblog system, a database of
public records or a simple poll app. A project is a collection of
configuration and apps for a particular website. A project can contain
multiple apps. An app can be in multiple projects.说白了 Project 包含很多个小App。 但是一个app也可以在很多个project中
tips: pip freeze and pip list
命令 | 作用 |
---|---|
freeze | Output installed packages in requirements format. |
list | List installed packages. |
建立一个Django的APP
python manage.py startapp polls
把自己的APP(polls) 加入主project中
mysite/setting.py
urlpatterns = [
url('polls/', include('polls.urls')),
url('admin/', admin.site.urls),
]
INSTALLED_APPS = [
‘polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
安装所有的app
python manage.py migrate
修改APP,改完model 怎么commit
python manage.py makemigrations
python manage.py sqlmigrate polls 0001
python manage.py migrate
数据库配置
postgresql 为例
setting.py
DATABASES = {
# 'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
# }
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': "testdb",
'USER': "admin",
'PASSWORD': "admin",
'HOST': "localhost",
'PORT': '5432'
},
'polls': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': "polls",
'USER': "admin",
'PASSWORD': "admin",
'HOST': "localhost",
'PORT': '5432'
}
}
DATABASE_ROUTERS = [db_router.DatabaseAppsRouter]
DATABASE_APPS_MAPPING = {
'polls': 'polls',
None: 'default',
}
不用的app使用不同的数据库
需要db_router.py (还没搞出来)
如何在 urls.py 中配置UI page
urlpatterns = [
path('', views.index, name='index'),
path('<int:question_id>/', views.detail, name='detail'),
path('<int:question_id>/result/', views.result, name='result'),
path('<int:question_id>/vote/', views.vote, name='vote'),
]
def vote(request, question_id):
return HttpResponse("You are looking at voting on questino page %s." % question_id)
如何使用template 功能
template/polls/index.html
{% if latest_question_list %}
<ul>
{% for question in latest_question_list %}
<li><a href="/polls/{{ question.id }}/">{{ question.question_text }}</a></li>
<li><a href="{% url 'detail' question.id %}">{{ question.question_text }}</a></li>
{% endfor %}
</ul>
{% else %}
<p>No polls are available.</p>
{% endif %}
# this is for getting a html template
def index_2(request):
latest_question_list = Question.objects.order_by('-pub_date')[:5]
context = {
'latest_question_list': latest_question_list,
}
template = loader.get_template('polls/index.html')
return HttpResponse(template.render(context, request))
# or
# return render(request, 'polls/index.html', context)
以下不要看=--------------------------------
一个具有注脚的文本。1
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
注脚的解释 ↩︎